创建TreeList及打开TreeListNode.Tag属性对应的窗体
本来想把标题改为"创建TreeList及TreeListNode.Tag属性高级应用",总觉得这命题太模糊。
学习内容:
1. 手工加载TreeList控件,与.Net的TreeView略有不同,看下面的代码。
2. 灵活应用TreeListNode.Tag属性。
3. 动态加载不同程序集文件(DLL), tag属性太伟大了!
4. 熟悉Assembly.GetExecutingAssembly(),LoadFile等相关方法。

打开不同模块的子窗体。

选择结点打开对应的窗体:
private void treeList1_FocusedNodeChanged(object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e)
{
if (e.Node.Tag is CustomFormNodeTag)
{
CustomFormNodeTag tag = e.Node.Tag as CustomFormNodeTag;
this.ShowMyForm(tag.AssemblyFile, tag.FormNamespace); //打开结点对应的窗体
this.ShowTagData(tag); //显示结点数据
}
}
/// <summary>
/// 打开结点对应的窗体
/// </summary>
private void ShowMyForm(string dllFile, string formNamespace)
{
string root = Application.StartupPath; //获取程序运行目录
Assembly asm;
//如未指定DLL文件,则获取当前执行程序EXE的程序集(ExecutingAssembly)
if (dllFile == "")
asm = Assembly.GetExecutingAssembly();
else//跟据DLL文件创建程序集
asm = Assembly.LoadFile(root + "\\" + dllFile);
//跟据命名空间动态创建窗体对象
object o = asm.CreateInstance(formNamespace);
//创建对象成功,打开窗体
if (o != null && o is Form)
(o as Form).Show();
else
MessageBox.Show("DLL文件或命名空间不正确!");
}
/// 打开结点对应的窗体
/// </summary>
private void ShowMyForm(string dllFile, string formNamespace)
{
string root = Application.StartupPath; //获取程序运行目录
Assembly asm;
//如未指定DLL文件,则获取当前执行程序EXE的程序集(ExecutingAssembly)
if (dllFile == "")
asm = Assembly.GetExecutingAssembly();
else//跟据DLL文件创建程序集
asm = Assembly.LoadFile(root + "\\" + dllFile);
//跟据命名空间动态创建窗体对象
object o = asm.CreateInstance(formNamespace);
//创建对象成功,打开窗体
if (o != null && o is Form)
(o as Form).Show();
else
MessageBox.Show("DLL文件或命名空间不正确!");
}
程序: dev 9.2x + vs 2008

参考文档:
C# DevExpress TreeListLookUpEdit 绑定数据源下拉窗体
C#绑定TreeList的DataSource属性及获取DataRow数据
[原创]递归读取DataTable加载TreeList控件
C/S架构软件开发平台 | 旗舰版V6.0 | 自动创建数据库备份计划|C/S开发框架
FastReport.NET 动态创建报表FastReport.Report实例绑定List 数据源
DevExpress ChartControl动态创建按月份按姓名对比的柱状图对比图|C/S开发框架
GitBlit - 使用克隆仓库方式创建、推送VS解决方案源码添加到版本库-C/S开发框架
GitBlit - 创建、推送VS解决方案源码添加到版本库-C/S开发框架
GoF设计模式:建造者模式(Builder Pattern)—复杂对象的组装与创建-C/S开发框架
OLEDB创建DbConnection连接Excel文件报错:未在本地计算机上注册ACE.OLEDB
DevExpress TreeList树组件自定义TreeListNode的Tooltip的方法(自动消息提示)
C# 更新SQL数据发生错误:不能创建大小为 8133 的行,该大小大于所允许的最大行大小 8060。
DevTreeListView.SetImageIndex 设置TreeList显示的图标
DevStyle.SetTreeListSelectStyle 设置TreeList组件只读状态(用于选择)
Activator.CreateInstance 使用指定类型的默认构造函数来创建该类型的实例
删除用户前逻辑判断,检查当前用户是否关联业务数据或创建业务数据
C# DevExpress TreeListLookUpEdit 绑定数据源下拉窗体
C#绑定TreeList的DataSource属性及获取DataRow数据
[原创]递归读取DataTable加载TreeList控件
C/S架构软件开发平台 | 旗舰版V6.0 | 自动创建数据库备份计划|C/S开发框架
FastReport.NET 动态创建报表FastReport.Report实例绑定List 数据源
DevExpress ChartControl动态创建按月份按姓名对比的柱状图对比图|C/S开发框架
GitBlit - 使用克隆仓库方式创建、推送VS解决方案源码添加到版本库-C/S开发框架
GitBlit - 创建、推送VS解决方案源码添加到版本库-C/S开发框架
GoF设计模式:建造者模式(Builder Pattern)—复杂对象的组装与创建-C/S开发框架
OLEDB创建DbConnection连接Excel文件报错:未在本地计算机上注册ACE.OLEDB
DevExpress TreeList树组件自定义TreeListNode的Tooltip的方法(自动消息提示)
C# 更新SQL数据发生错误:不能创建大小为 8133 的行,该大小大于所允许的最大行大小 8060。
DevTreeListView.SetImageIndex 设置TreeList显示的图标
DevStyle.SetTreeListSelectStyle 设置TreeList组件只读状态(用于选择)
Activator.CreateInstance 使用指定类型的默认构造函数来创建该类型的实例
删除用户前逻辑判断,检查当前用户是否关联业务数据或创建业务数据
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
