隐藏MenuStrip Winfoms中的一些菜单

时间:2016-06-16 08:28:34

标签: c# winforms menustrip

我的Windows窗体应用程序中有一个包含MenuItems的MenuStrip。

我想检查一些条件并禁用MenuStrip栏中MenuItems的可见性。 假设普通用户正在访问应用程序,那么某些MenuItems将被隐藏,如果管理员用户正在访问该应用程序,则所有MenuItem都应该可见。

这是我的代码(我不确定),它不起作用。

  public Visite(string username)
    {
        InitializeComponent();
        label1.Text = username;

        using (SqlConnection con = new SqlConnection("Data Source=ADMIN-PC\\SQLEXPRESS;Initial Catalog=timar;Integrated Security=True"))
        {
            con.Open();
            bool UserIsAdmin = true;
            using (SqlCommand cmd = new SqlCommand("select * from [User] where Role =@Role", con))
            {
                cmd.Parameters.AddWithValue("@Role", "Admin");

                UserIsAdmin = (int)cmd.ExecuteScalar() > 0;
            }
            if (UserIsAdmin == false)
            {
                utilisateurToolStripMenuItem.Visible = false;
            }
           else
           {
               utilisateurToolStripMenuItem.Visible= true;
            }
           con.Close();
       }

    }

请帮忙。提前谢谢。

2 个答案:

答案 0 :(得分:0)

您正在谈论问题中的可见性,但您的代码显示已启用。

这是完全不同的两件事。

如果你坚持使用可见性,你应该将utilisateurToolStripMenuItem.Visible设置为假

答案 1 :(得分:0)

试试这个..

public Visite(string username)
{
    InitializeComponent();
    label1.Text = username;
    using (SqlConnection con = new SqlConnection("Data Source=ADMIN-PC\\SQLEXPRESS;Initial Catalog=timar;Integrated Security=True"))
    {
        con.Open();
        bool UserIsAdmin = false;
        using (SqlCommand cmd = new SqlCommand("select * from [User] where Role =@Role", con))
        {
            cmd.Parameters.AddWithValue("@Role", "Admin");
            UserIsAdmin = (int)cmd.ExecuteScalar() > 0;
        }
       utilisateurToolStripMenuItem.Visible = UserIsAdmin;
     }
}