相应TreeView的点击事件的处理

  private void tvmenu_AfterSelect(object sender, TreeViewEventArgs e)
        {
            ReflectInitForm(e);
         }

        private void ReflectInitForm(TreeViewEventArgs e)
        {
            string formInputName = e.Node.Tag.ToString();
            string formName = "";
            string argsInputName = "";
            string[] args = new string[10];
            bool hasArgs = false;

            if (string.IsNullOrEmpty(formInputName))
                return;

            //防止输入错误,使用中文括号
            formInputName = formInputName.Replace("(", "(");
            formInputName = formInputName.Replace(")", ")");

            if (formInputName.Contains("(") && formInputName.Contains(")"))
            {
                int bracketStartIndex = formInputName.IndexOf('(');//括号起始位置
                int bracketEndIndex = formInputName.IndexOf(')');//括号起始位置
                formName = formInputName.Substring(0, bracketStartIndex);
                argsInputName = formInputName.Substring(bracketStartIndex + 1, bracketEndIndex - bracketStartIndex - 1);
                args = argsInputName.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                hasArgs = true;
            }
            else
            {
                formName = formInputName;
            }

            System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();

            Type type = null;
            foreach (string typeSpace in assemblySpace)//根据类型所在命名空间.Form名称反射
            {
                string sss = string.Format("{0}.{1}", typeSpace, formName);
                type = assembly.GetType(sss);
                if (type != null)
                    break;
            }

            if (type != null)
            {
                object obj = null;

                if (hasArgs)
                {
                    obj = Activator.CreateInstance(type, args);
                }
                else
                {
                    obj = Activator.CreateInstance(type);
                }
                if (obj != null)
                {
                    Form formToShow = (Form)obj;
                    showForm(formToShow);
                }
            }
            else
                return;
        }




        public void showForm(Form form2)
        {
            //背景图片置空
            this.Right_Panel.BackgroundImage = null;

            foreach (Form frm in this.Right_Panel.Controls)
            {
                frm.Close();//关掉以前的窗口
            }
            form2.FormBorderStyle = FormBorderStyle.None;
            form2.Dock = DockStyle.Fill;
            form2.TopLevel = false;
            form2.Parent = Right_Panel;//设置将其放在Right_Panel的位置中
            FrmMain frmMain = new FrmMain();
            form2.Show();
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值