当任何人点击未启用的菜单项时,我想显示一个消息框我尝试了以下编码但是没有显示消息框。
编码:
private void updateFineDetailsToolStripMenuItem_Click(object sender, EventArgs e)
{
if (updateFineDetailsToolStripMenuItem.Enabled == true)
{
frmUpdateFineDetails objUpdateFineDetails = new frmUpdateFineDetails();
objUpdateFineDetails.MdiParent = this;
objUpdateFineDetails.Show();
}
else if (updateFineDetailsToolStripMenuItem.Enabled == false)
{
MessageBox.Show("Unauthorized Person");
}
}
默认情况下,我已将启用状态设置为false,当表单加载时我正在检查用户是否为管理员,如果用户是管理员,则此菜单项将为登录上述应用程序的所有其他用户启用必须禁用菜单项。
请注意,上述编码不会产生任何错误,但它甚至不会将消息框显示为未经授权的人。
有人可以帮我完成这项任务吗?
提前致谢!
答案 0 :(得分:2)
禁用菜单项或按钮的整个想法是阻止用户与其进行交互。通常,控件也将以某种方式呈现,以使用户清楚。如果您想阻止用户采取某些操作,例如根据用户是否是管理员,您可以使用以下三种方法之一:
在后两种情况下,没有交互,因为用户无法调用该命令。我通常倾向于隐藏命令,如果对它的访问是基于角色的(意味着如果我在启动应用程序时无法访问命令,则不会发生任何命令运行时指向),或者如果命令的可用性与数据状态相关,则禁用它。
答案 1 :(得分:1)
据我了解,禁用的菜单项不会引发Click事件。
答案 2 :(得分:0)
如果需要显示错误消息,请启用菜单项。
如果管理员点击,则会发生默认操作,如果其他用户单击显示消息框并阻止默认操作。
从您的代码中我认为您可以通过启用菜单项来完成此操作。
答案 3 :(得分:0)
禁用菜单项不是化妆品显示问题,它只是您对术语的期望 - 它禁用菜单项。
禁用时,菜单项实际上是惰性的 - 它不会引发点击事件,并且没有(直接)方式来实现它。
我可以猜测你的动机 - 向你的用户解释为什么特定的菜单项对他们不可用 - 但是你需要找到一种不同的方法,一种适用于系统,而不是反对它。
一些可能的方法......
答案 4 :(得分:0)
禁用的控件不会引发Click事件。你应该模拟那个状态!例如: