C#:将空间数据加载到树视图控件
2024-08-25 22:02:15
自己 整理了 下 代码 测试了下 还行。。。 #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
最新文章
- CRL快速开发框架系列教程十(导出对象结构)
- Android学习笔记之HttpClient实现Http请求....
- 指针转换(C# 编程指南)
- 部署windows服务
- HTML+CSS基础学习笔记(8)
- [Locked] Best Meeting Point
- zookeeper_01:zookeeper概述
- 国民身份证号码校验之“C#/Winform方法实现+案例分析”
- 分布式版本控制git常见问题之gitignore冲突
- ecshop的详细安装步骤
- zookeeper分布式搭建
- 关于css选择器中有小数点的标签获取
- 【转】java中equal与==的区别 其中有个缓冲区,需要注意
- JVM自动内存管理机制——Java内存区域(上)
- node_01_自定义模块(先创建package.json)
- php文件包含漏洞(利用phpinfo)复现
- python time模块使用笔记(更新)
- (转)关于X64位系统IIS7下支持32位asp.net程序
- adb shell pm list packages的用法
- .4-浅析express源码之applicaiton模块(3)-compile函数
热门文章
- php图片上传检测是否为真实图片格式
- SDRAM interface slashes pin count
- Fully Digital Implemented Delta-Sigma Analog to Digital Converter
- 创建Windows窗体 : WinMain() 与 WndProc()
- MySQL 一个库中表数量是否有限制?
- WPF, WPF Browser Application(XBAP) 和 Silverlight 的区别
- Redis 起步(linux)
- jQuery 回调函数
- 教你用软碟通(UltraISO)刻录系统光盘
- 《java 语言程序设计》第2章编程练习