zoukankan      html  css  js  c++  java
  • Winform窗体中左边显示TreeView右边显示动态加载的窗体的实现

    纠结了很多天的问题终于解决了。。。总结一下:

    主要就是实现动态从数据库中加载TreeView然后动态的显示到窗体中间,差了很多资料,尝试了很多种方法,最后还是用反射做出来的,

    啥话也不说了,直接上代码:

    //这个是TreeView中的节点的Click方法:(NodeMouseClick)

    private void TVMemu_NodeMouseClick_1(object sender, TreeNodeMouseClickEventArgs e)
            {
                string fullFormName = e.Node.Tag.ToString(); //完整的反射路径(这块显示的你要显示的窗体在你的项目中的位置)

    具体显示(HospitalXPWeb.Systems.Form1,HospitalXPWeb)显示是这个样子的
                Type formType = Type.GetType(fullFormName); //该路径的反射
                if (formType != null)//查看反射是否成功
                {
                    if (typeof(Form).IsAssignableFrom(formType)) //反射结果是否为窗体Form
                    {
                        CloseOtherAllFrom(); //关闭父窗体中的所有子窗体
                        Form frm = (Form)Activator.CreateInstance(formType); //创建反射窗体实例
                        frm.Text = e.Node.Text; //窗体名
                        frm.MdiParent = this; //设置为子窗体与父窗体关系
                        frm.WindowState = FormWindowState.Maximized;
                        frm.Dock = DockStyle.Fill;
                        frm.FormBorderStyle = FormBorderStyle.None;
                        frm.Show();
                    }
                    else
                    { MessageBox.Show("指定的类型不能是从Form类型继承", "温馨提示"); }
                }
                else
                { MessageBox.Show("指定的类型不存在", "温馨提示"); }
            }

  • 相关阅读:
    script 标签的defer,async的作用,及拓展浏览器多线程,DOMContentLoaded
    vuex基本熟悉与使用
    关于h5屏幕适配
    react-router4.0的使用
    使用gulp 合并压缩打包,实时监控文件,实现本地server
    组件之间的通讯:vuex状态管理,state,getters,mutations,actons的简单使用(一)
    vue怎么样创建组件呢??
    基于ionic框架封装一个图片轮播指令的几点
    使用php在服务器端生成图文验证码(二)
    字符串与对象的相互转化
  • 原文地址:https://www.cnblogs.com/weiying/p/weiying01_31.html
Copyright © 2011-2022 走看看