我的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();
}
}
请帮忙。提前谢谢。
答案 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;
}
}