自己 整理了 下 代码 测试了下 还行。。。

    #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

最新文章

  1. CRL快速开发框架系列教程十(导出对象结构)
  2. Android学习笔记之HttpClient实现Http请求....
  3. 指针转换(C# 编程指南)
  4. 部署windows服务
  5. HTML+CSS基础学习笔记(8)
  6. [Locked] Best Meeting Point
  7. zookeeper_01:zookeeper概述
  8. 国民身份证号码校验之“C#/Winform方法实现+案例分析”
  9. 分布式版本控制git常见问题之gitignore冲突
  10. ecshop的详细安装步骤
  11. zookeeper分布式搭建
  12. 关于css选择器中有小数点的标签获取
  13. 【转】java中equal与==的区别 其中有个缓冲区,需要注意
  14. JVM自动内存管理机制——Java内存区域(上)
  15. node_01_自定义模块(先创建package.json)
  16. php文件包含漏洞(利用phpinfo)复现
  17. python time模块使用笔记(更新)
  18. (转)关于X64位系统IIS7下支持32位asp.net程序
  19. adb shell pm list packages的用法
  20. .4-浅析express源码之applicaiton模块(3)-compile函数

热门文章

  1. php图片上传检测是否为真实图片格式
  2. SDRAM interface slashes pin count
  3. Fully Digital Implemented Delta-Sigma Analog to Digital Converter
  4. 创建Windows窗体 : WinMain() 与 WndProc()
  5. MySQL 一个库中表数量是否有限制?
  6. WPF, WPF Browser Application(XBAP) 和 Silverlight 的区别
  7. Redis 起步(linux)
  8. jQuery 回调函数
  9. 教你用软碟通(UltraISO)刻录系统光盘
  10. 《java 语言程序设计》第2章编程练习