版權聲明:歡迎評論和轉載,轉載請注明來源。 https://blog.csdn.net/zy332719794/article/details/9013691
先上效果:
這是一個TreeView控件的效果。
控件的用法就不多說了,具體參考:
http://msdn.microsoft.com/zh-cn/library/vstudio/system.windows.forms.treeview(v=vs.100).aspx其中,預設是沒有圖檔的,當需要在每一個節點加圖檔時,首先需要設定圖檔清單,然後再引用。
具體操作如下:
1. 初始化圖檔清單
初始化圖檔清單的用處是,把圖檔加入到控件的ImageList屬性清單中,以便每個樹節點調用。
類似代碼如下:
private void InitImageList()
{
treeView.ImageList = new ImageList();
treeView.ImageList.Images.Add("GdbSource", Resource.GdbSource);
treeView.ImageList.Images.Add("Database", Resource.GdbConnection16);
treeView.ImageList.Images.Add("FeatureEmpty", Resource.GdbFeatureClassEmpty16);
treeView.ImageList.Images.Add("FeatureLine", Resource.GdbFeatureClassLine16);
treeView.ImageList.Images.Add("FeaturePoint", Resource.GdbFeatureClassPoint16);
treeView.ImageList.Images.Add("FeaturePolygon", Resource.GdbFeatureClassPolygon16);
treeView.ImageList.Images.Add("Dataset", Resource.GdbFeatureDataset16);
}
Resource.***是引用的資源檔案,你也可以引用檔案夾路徑檔案,Add方法後面的參數是Image類型。
關于引用資源檔案,參考:
http://blog.csdn.net/zy332719794/article/details/89711542. 樹節點引用圖檔
因為在第一步我們已經設定好了圖檔清單,下面我們隻需要在添加樹節點時,直接掉用就可以了
private void NodeAddFeatureClass(TreeNode node, IFeatureClass featureClass)
{
switch (featureClass.ShapeType)
{
case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPoint:
node.Nodes.Add("FeaturePoint", featureClass.AliasName, "FeaturePoint", "FeaturePoint");
break;
case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolyline:
node.Nodes.Add("FeatureLine", featureClass.AliasName, "FeatureLine", "FeatureLine");
break;
case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolygon:
node.Nodes.Add("FeaturePolygon", featureClass.AliasName, "FeaturePolygon", "FeaturePolygon");
break;
default:
node.Nodes.Add("FeatureEmpty", featureClass.AliasName, "FeatureEmpty", "FeatureEmpty");
break;
}
}
添加節點時,有以下幾個方法
Add(String)
--- 将具有指定标簽文本的新樹節點添加到目前樹節點集合的末尾。
Add(TreeNode)---将先前建立的樹節點添加到樹節點集合的末尾。
Add(String,
String)
---指定節點KEY和顯示文本。
String, Int32)---指定節點KEY,顯示文本,圖檔編号
String, String)---指定節點KEY,顯示文本,圖檔KEY
Add(String, String, Int32, Int32)---指定節點KEY,顯示文本,圖檔編号,選中時圖檔編号
Add(String, String, String,
String) ---指定節點KEY,顯示文本,圖檔編号,選中時圖檔KEY
3. 注意
(1) 我們在添加圖檔到 ImageList 的時候,可以選擇不添加KEY的Add方法,但後面調用時,就必須用
或者
String, Int32, Int32)的方法添加樹節點。
(2) 如果我們添加了圖檔清單,但在添加子節點時沒有調用具體的圖檔,那麼每個節點會預設添加上ImageList第一個(預設)圖檔。
(3) 如果添加樹節點時,沒有設定選中時(第四個參數)圖檔編号或key,那麼會在選中時,圖示會變成ImageList第一個(預設)圖檔。