zoukankan      html  css  js  c++  java
  • C#winform菜单权限分配,与菜单同步的treeView树状菜单权限控制使用心得

    在网上查了很多,发现没有讲述关于--C#winform菜单权限分配,与菜单同步的treeView树状菜单权限控制使用--的资料

    自己研究了一个使用方法。下面来看看。

    我有两个窗体:LOGINFRM,MAINFRM.

    首先,说明一点,我的菜单项是通过程序控制动态自动添加到树形控件菜单项的。

    第一步,在主窗体MAINFRM中,添加公共变量

            public string username="";//用户名
            public string useLOA = "";//权限
    
            public int sa;
            //权限
            public int userLOA
            {
                get { return sa; }
                set { sa = value; }
            }

    第二步,在登录窗体中,

                UserName = txtUserName.Text.Trim();//获取用户名
                PassWrd = txtPasWrd.Text.Trim();//获取密码
                LOA1 = comboBox1.Text;//获取combox1的选项:用户身份获取
                
    
               。。。。
    
                         Form_Main HomePage = new Form_Main();
                         if (LOA1 == "管理员")//传递权限
                         {
                             HomePage.userLOA = 1;
                         }
                         else//普通用户
                         {
                             HomePage.userLOA = 2;
                         }
                         HomePage.username = UserName; //传递用户名 ,用于状态栏显示 
                         HomePage.useLOA = LOA1;//传递权限,用于状态栏显示
                         this.Hide();//隐藏登录窗口
                         //HomePage.StartPosition = FormStartPosition.CenterScreen;//屏幕中央显示窗体
                         HomePage.Show();//显示主窗口

    第三部  在加载主窗体事件中添加

    private void Form_Main_Load(object sender, EventArgs e)//窗体加载事件
            {
                GetMenu(treeView1,menuStrip1);//菜单项添加到树形控件
                
                //MessageBox.Show(userLOA.ToString());//TEST-OK
    
                if (userLOA == 2)//权限限制
                {
                    Excel导入.Enabled = false;
                    Excel导出.Enabled = false;
                    添加用户.Enabled = false;
                    修改密码.Enabled = false;
                    删除用户.Enabled = false;
                }
                toolStripStatusLabel2.Text = "当前用户:"+username+",  权限:"+useLOA+"";//状态栏显示用户名和权限
            }

    第四步,树形菜单权限控制

     
      1  //TreeView树状菜单和ToolMenuStrip菜单调用的是相同的窗体,下面通过判断
      2 
      3             //ToolMenuStrip菜单项的状态来决定是否打开对应窗体,经过实践证明,下面的方法是有效的。做到了
      4             //TreeView树状菜单权限控制
      5 
      6    
      7                
      8              //水文信息添加
      9                 if (FrmName == "Excel导入")
     10                 {
     11                     //根据菜单状态控制树型菜单项的状态
     12 
     13                     if (Excel导入.Enabled == false)
     14                     {
     15                         MessageBox.Show("当前用户无权使用该功能!");
     16                        
     17                     }
     18                     else
     19                     {
     20                         添加frm tianjiafrm = new 添加frm();
     21                         tianjiafrm.StartPosition = FormStartPosition.CenterParent;
     22                         tianjiafrm.ShowDialog();
     23                         tianjiafrm.Dispose();//模态对话框显示
     24                     }
     25 
     26 
     27                    
     28                 }
     29                 if (FrmName == "Excel导出")
     30                 {
     31                     if (Excel导出.Enabled==false)
     32                     {
     33                         MessageBox.Show("当前用户无权使用该功能!");
     34                     }
     35                     else
     36                     {
     37                         导出frm daochufrm = new 导出frm();
     38                         daochufrm.StartPosition = FormStartPosition.CenterParent;
     39                         daochufrm.ShowDialog();
     40                         daochufrm.Dispose();//模态对话框显示
     41                     }
     42 
     43 
     44                 }
     45 
     46               //系统管理
     47                 if (FrmName == "添加用户")
     48                 {
     49                     if (添加用户.Enabled==false)
     50                     {
     51                         MessageBox.Show("当前用户无权使用该功能!");
     52                     }
     53                     else
     54                     {
     55                         添加用户frm tianjiafrm = new 添加用户frm();
     56                         tianjiafrm.StartPosition = FormStartPosition.CenterParent;
     57                         tianjiafrm.ShowDialog();
     58                         tianjiafrm.Dispose();
     59                     }
     60                    
     61                 }
     62                 if (FrmName == "修改密码")
     63                 {
     64                     if (修改密码.Enabled==false)
     65                     {
     66                         MessageBox.Show("当前用户无权使用该功能!");
     67                     }
     68                     else
     69                     {
     70                         修改用户信息frm xiugaifrm = new 修改用户信息frm();
     71                         xiugaifrm.StartPosition = FormStartPosition.CenterParent;
     72                         xiugaifrm.ShowDialog();
     73                         xiugaifrm.Dispose();
     74                     }
     75 
     76                   
     77                 }
     78                 if (FrmName == "删除用户")
     79                 {
     80                     if (删除用户.Enabled==false)
     81                     {
     82                         MessageBox.Show("当前用户无权使用该功能!");
     83                     }
     84                     else
     85                     {
     86                         删除用户frm sanchufrm = new 删除用户frm();
     87                         sanchufrm.StartPosition = FormStartPosition.CenterParent;
     88                         sanchufrm.ShowDialog();
     89                         sanchufrm.Dispose();
     90 
     91                     }
     92 
     93                 }
     94                if (FrmName=="使用说明")
     95                {
     96 
     97                    使用说明frm usertip = new 使用说明frm();
     98                    usertip.StartPosition = FormStartPosition.CenterParent;
     99                    usertip.ShowDialog();
    100                    usertip.Dispose();
    101                }
    102                if (FrmName=="关于")
    103                {
    104                    AboutBox1 aboutfrm = new AboutBox1();
    105                    aboutfrm.StartPosition = FormStartPosition.CenterParent;
    106                    aboutfrm.ShowDialog();
    107                    aboutfrm.Dispose();
    108 
    109                }
  • 相关阅读:
    URAL 2067 Friends and Berries (推理,数学)
    URAL 2070 Interesting Numbers (找规律)
    URAL 2073 Log Files (模拟)
    URAL 2069 Hard Rock (最短路)
    URAL 2068 Game of Nuts (博弈)
    URAL 2066 Simple Expression (水题,暴力)
    URAL 2065 Different Sums (找规律)
    UVa 1640 The Counting Problem (数学,区间计数)
    UVa 1630 Folding (区间DP)
    UVa 1629 Cake slicing (记忆化搜索)
  • 原文地址:https://www.cnblogs.com/yuhuameng/p/3669161.html
Copyright © 2011-2022 走看看