C#反射、方法调用、自动调用方法、根据按钮名称调用方法、C#按钮权限管理

根据按钮名称,直接调用方法,适用于用户对按钮的操作权限管理。

        /// <summary>
        /// 菜单按钮点击事件
        /// </summary>
        void usrMenu1_UserControlMenuItemClick(object sender, EventArgs e)
        {           
            #region MyRegion
            ////BtnGetParam    获取参数
            //if (Nbi.Name == "BtnGetParam")
            //{
            //    BtnGetParam_Click(sender, e);
            //}
            ////BtnDelete    删 除
            //if (Nbi.Name == "BtnDelete")
            //{
            //    BtnDelete_Click(sender, e);
            //}
            ////BtnSaveForm    保 存
            //if (Nbi.Name == "BtnSaveForm")
            //{
            //    BtnSaveForm_Click(sender, e);
            //}
            ////BtnSaveForm    刷新
            //if (Nbi.Name == "Btnrefresh")
            //{
            //    Btnrefresh_Click(sender, e);
            //}
            //if (Nbi.Name == "BtnUpdSysID")
            //{
            //    BtnUpdSysID_Click(sender, e);
            //}  
            #endregion
            //className是方法所在的类
            try
            {
                ToolStripMenuItem Nbi = (ToolStripMenuItem)sender;//获取按钮对象
                MethodInfo mm = this.GetType().GetMethod(Nbi.Name + "_Click");//调用按钮的事件
                //obj是方法的返回值,Invoke的第二个参数是执行方法所要的参数,是个数组
                object obj = mm.Invoke(this, new object[2] { sender, e });
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
            }
        }

 

 

 

 

 

 

 

 

 

 

posted @ 2016-07-25 08:49  蓝雨冰城  阅读(1032)  评论(0编辑  收藏  举报