创建TreeList及打开TreeListNode.Tag属性对应的窗体
作者:C/S框架网  发布日期:2011/06/26 22:49:24
创建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文件或命名空间不正确!");
}



程序: dev 9.2x + vs 2008




C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务


点击下载附件 点击下载附件 (如下载失败,请邮件通知我们寄回给您,或QQ:23404761留言.)
上一篇 下一篇