C#:将空间数据加载到树视图控件
2014-04-22 16:50
218 查看
自己 整理了 下 代码 测试了下 还行。。。 #region 操作树视图控件 /// <summary> /// 自定义需要的类型 /// </summary> enum DatasetType { DTFeatureClass, DTFeatureDataset, DTTable, DTRasterCatalog, DTRasterDataset, DTMosaicDataset, DatasetTypeNum } /// <summary> /// 自定义需要的类型字符串名 /// </summary> public static string[] NodeNames = { "要素类", "特性表", "影像目录", "影像数据集", "镶嵌数据集" }; /// <summary> /// 将工作空间内数据加入到树形控件 /// </summary> /// <param name="pWorkSpace">工作空间</param> /// <param name="treeView">属性控件</param> public static void LoadWorkSpaceData(IWorkspace pWorkSpace, TreeView treeView) { if (null == pWorkSpace && null == treeView) { return; } try { if (treeView.Nodes != null) { treeView.Nodes.Clear(); } string server = pWorkSpace.ConnectionProperties.GetProperty("server").ToString(); string user = pWorkSpace.ConnectionProperties.GetProperty("user").ToString(); string database = pWorkSpace.ConnectionProperties.GetProperty("database").ToString(); TreeNode pRootNode = new TreeNode(); pRootNode.Text = server + "." + user + "." + database; pRootNode.Tag = pWorkSpace; treeView.Nodes.Add(pRootNode); for (int i = 0; i < (int)DatasetType.DatasetTypeNum; i++) { TreeNode nodeParent = new TreeNode(NodeNames[i]); pRootNode.Nodes.Add(nodeParent); DatasetType dst = (DatasetType)i; nodeParent.Tag = dst; IEnumDatasetName datasetNames = null; switch (dst) { case DatasetType.DTFeatureClass: datasetNames = pWorkSpace.get_DatasetNames(esriDatasetType.esriDTFeatureClass); break; case DatasetType.DTFeatureDataset: datasetNames = pWorkSpace.get_DatasetNames(esriDatasetType.esriDTFeatureDataset); break; case DatasetType.DTTable: datasetNames = pWorkSpace.get_DatasetNames(esriDatasetType.esriDTTable); break; case DatasetType.DTRasterCatalog: datasetNames = pWorkSpace.get_DatasetNames(esriDatasetType.esriDTRasterCatalog); break; case DatasetType.DTRasterDataset: datasetNames = pWorkSpace.get_DatasetNames(esriDatasetType.esriDTRasterDataset); break; case DatasetType.DTMosaicDataset: datasetNames = pWorkSpace.get_DatasetNames(esriDatasetType.esriDTMosaicDataset); break; } FillTreeNode(nodeParent, datasetNames); } } catch (Exception ex) { MessageBox.Show("将空间内的数据加载到树视图控件失败!" + ex.Message); } } /// <summary> /// 依据数据集添加新节点 /// </summary> /// <param name="parentNode">父节点</param> /// <param name="enumDSName">数据集项</param> public static void FillTreeNode(TreeNode parentNode, IEnumDatasetName enumDSName) { try { IDatasetName dsName = enumDSName.Next(); while (dsName != null) { String drcNameStr = dsName.Name; String drcShortName = LayerHelper.GetClassShortName(drcNameStr); TreeNode drcNode = new TreeNode(drcShortName); drcNode.Tag = dsName; parentNode.Nodes.Add(drcNode); dsName = enumDSName.Next(); } } catch (System.Exception ex) { throw ex; } } #endregion
相关文章推荐
- C# 读取MDB空间数据并加载在地图视图
- C# checklistbox控件用法总结(怎样得到多选的值,以及动态加载数据)
- VS2010 c# winform中datagridview控件初次加载时去除默认选中第一行数据
- C# checklistbox控件用法总结(怎样得到多选的值,以及动态加载数据)
- C#在窗口中ComboBox控件中加载数据库数据
- C# checklistbox控件用法总结(怎样得到多选的值,以及动态加载数据)
- C#中为啥俺地ComboBox控件在数据绑定时加载速度很慢
- c# 中运用js实现百分比数据加载提示
- C# DataGridView控件清空数据完美解决方法
- 如何动态加载控件以及插件编程思想(C#)
- 如何动态加载控件以及插件编程思想(C#)
- 未能加载视图状态。正在向其中加载视图状态的控件树必须与前一请求期间用于保存视图状态的控件树相匹配。例如,当以动态方式添加控件时,在回发期间添加的控件必须与在初始请求期间添加的控件的类型和位置相匹配。
- 如何动态加载控件以及插件编程思想(C#)
- c#当控件被数据绑定时,无法以编程方式向 DataGridView 的行集合中添加行
- C#命名规范,控件、数据类型、ADO.NET等
- Skyline软件二次开发初级——1如何在web页面中添加控件和加载三维地图数据
- 组件加载的过程中,数据与视图无法同时呈现的问题
- 总结Asp.net中Page加载PostData的具体过程 进而解决"获取动态创建的控件的PostData数据"问题
- C# DataGridView控件中数据导出到Excel