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

    #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#:将空间数据加载到树视图控件的更多相关文章

  1. MVC4加载zTree树小控件

    前言: 第一次学习使用MVC框架,找了个练手项目,加载zTree树小控件.下面我就一步步说明我这次练手的经历以记录.如果有什么错误,希望各位大神帮忙指正,谢谢. 第一步: 利用VS2010新建一个MV ...

  2. 实现虚拟模式的动态数据加载Windows窗体DataGridView控件 .net 4.5 (一)

    实现虚拟模式的即时数据加载Windows窗体DataGridView控件 .net 4.5 原文地址 :http://msdn.microsoft.com/en-us/library/ms171624 ...

  3. 在ASP.NET中动态加载内容(用户控件和模板)

    在ASP.NET中动态加载内容(用户控件和模板) 要点: 1. 使用Page.ParseControl 2. 使用base.LoadControl 第一部分:加载模板 下 面是一个模板“<tab ...

  4. 上拉加载下拉刷新控件WaterRefreshLoadMoreView

    上拉加载下拉刷新控件WaterRefreshLoadMoreView 效果: 源码: // // SRSlimeView // @author SR // Modified by JunHan on ...

  5. WPF中动态加载XAML中的控件

    原文:WPF中动态加载XAML中的控件 using System; using System.Collections.Generic; using System.Linq; using System. ...

  6. C#窗体加载和控件加载不同步导致控件闪烁

    窗体加载和控件加载不同步导致的控件闪烁现象:// 代码块加在父窗体中的任意位置,解决窗体加载和控件加载不同步导致的控件闪烁问题        protected override CreatePara ...

  7. VC中实现带有背景位图的树型控件

    当前许多应用程序都在使用树型控件时为其添加了背景位图,增强的控件的魅力,然而对于Visual C++编程爱好者来说,使用Visual C++MFC提供的树型控件(CTreeCtrl)本身就是一个难点, ...

  8. MVC中在一个视图中,怎么加载另外一个视图?

    在RazorView.cshtml视图: <!--在视图中调用无返回值的方法,视图中调用无返回值的方法,要加上大括号--> <!--在一个视图中,直接加载另外一个视图--> @ ...

  9. 转:zTree树控件实战篇:针对多个下拉加载zTree树应该如何做出合理的配置

    今天有一个zTree的朋友遇到一个非常棘手的问题,才研究zTree树控件两天就被上头催着看成果,很是苦恼.他面对的问题就是页面内多个地方需要下拉在其文本框下方加载zTree树,由于对zTree下拉加载 ...

随机推荐

  1. 树莓派(Debian)系统设置了静态IP之后还会获取动态IP的问题解决(scope global secondary eth0)

    解决方法: 1.配置好静态IP在/etc/network/interface 2.关闭dhcp服务(不知道这个服务是干嘛的,明明是客户端还需要这个) sudo systemctl stop dhcpc ...

  2. 反激 (Flyback) 控制器 -- LTC3803

    LTC3803 - 采用 ThinSOT 封装的恒定频率.电流模式.反激式 DC/DC 控制器 特点 VIN 和 VOUT 仅受限于外部元件 可调斜率补偿 内部软起动 200kHz 恒定频率操作 ±1 ...

  3. winform 取消datagridview第一行选中状态

    C# WinForm 取消DataGridView的默认选中Cell 使其不反蓝 http://www.cnblogs.com/freeliver54/archive/2009/02/16/13913 ...

  4. glob函数的使用

    glob库函数用于Linux文件系统中路径名称的模式匹配,即查找文件系统中指定模式的路径.注意,这不是正则表达式匹配,虽然有些相似,但还是有点差别. glob函数原型       #include & ...

  5. Linux下查找命令(收集整理)

    原文:http://blog.csdn.net/sunstars2009918/article/details/8510878 一.Linux查找文件的相关命令 常 用 命 令 简要中文说明 程序所在 ...

  6. C++UI框架

    WTL都算不上什么Framework,就是利用泛型特性对Win API做了层封装,设计思路也没摆脱MFC的影响,实际上用泛型做UI Framework也只能算是一次行为艺术,这个思路下继续发展就会变得 ...

  7. 设计原则:消除Switch...Case的过程,可能有点过度设计了。

    备注 不要重复自己,也不要重复别人,一旦养成了“拷贝和粘贴”的习惯,写程序的时候非常容易导致重复,好在一直暗示自己要稍后进行重构,本文给出一个重构的示例. 需求 需求:按照年.月和日显示销售数据,根据 ...

  8. .NET:字符集和编码学习总结

    背景 一直没有深入的学习字符集和编码的知识(现在也没有深入),今天查阅了一些资料,弄明白了一些事情,本文就简单记录一下. 字符集和编码 字符集是指一些符号组成的集合,编码是对指定字符集如何表示为字节的 ...

  9. iOS开发之UITextField 左侧设置小图标 leftview

    设置用户登录的时候,这个是避免不了,实现方法很多,我个人主张,系统有提供就使用系统,一来方便,二来运行效率高 Paste_Image.png 实现代码如下: pwdTextField.placehol ...

  10. [Algorithm -- Dynamic Programming] Recursive Staircase Problem

    For example there is a staricase N = 3 | ---|   |---|    | |---|            | ---|                  ...