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

    #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. 用SoapUI进行Webservice的性能压力测试

    转载:http://www.cnblogs.com/fnng/archive/2011/08/11/2135440.html 第一步: 新建一个项目:点击新建按钮就行了. 在打开的窗口中填写你项目名, ...

  3. 【mybatis】mybatis查询发生条件传入值但是查询并没有这个条件的查询,Integer类型查询条件需要注意事项

    有下面这样一个查询: 下面标紫色的查询条件,type的类型为Integer <select id="findDealerInfo" parameterType="c ...

  4. 解决:解压zip文件却变成cpgz文件

    众所周知,zip是一种压缩文件格式,MAC OS默认支持的文件格式,当时偶尔当你打开zip文件想要解压时,却自动变成了cpgz文件而没有解压,再双击这个cpgz文件,Archive Utility又会 ...

  5. sqlserver锁大全

    锁定提示                                 描述  HOLDLOCK        将共享锁保留到事务完成,而不是在相应的表.行或数据页不再需要时就立即释放锁.HOLDL ...

  6. go语言基础之局部变量特点

    1.局部变量特点 示例1: package main import "fmt" func main() { //定义在{}里面的变量就是局部变量,只能在{}里面有效 //执行到定义 ...

  7. 通过form表单上传文件获取后台传来的数据

    小伙伴是不是遇到过这样的问题,通过submit提交form表单的时候,不知怎么获取后台传来的返回值.有的小伙伴就会说你不会发送ajax,其实也会.假如提交的form表单中含有文件,怎么办? 步骤1:想 ...

  8. 用C#读取图片的EXIF信息的方法

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Dr ...

  9. Graph Automata Player

    题目action=problem&type=show&id=12839&courseid=269">here 第一道高速幂.同一时候也是第一道高斯消元. 输入的 ...

  10. SQL语法 之 基本查询

    一.语法结构 SELECT select_list [ INTO new_table ] FROM table_source [ WHERE search_condition ] [ GROUP BY ...