如果没有选择任何内容,则不显示上下文菜单
问题描述:
如果在WinForms c#应用程序的列表框中实际选择某个项目,我只想显示上下文菜单。如果没有选择任何内容,则不显示上下文菜单
目前,如果正确点击右键,我可以选择一个项目,如果没有选择任何项目,我可以禁用右键单击菜单,但是,我不希望菜单显示出来。
这怎么能实现?
private void genPassMenu_Opening(object sender, CancelEventArgs e)
{
genPassMenu.Enabled = lstPasswords.SelectedIndex > 0;
genPassMenu.Visible = lstPasswords.SelectedIndex > 0;
}
我自己尝试了这两种情况,它只适用于启用。
也许开幕并不是选择正确的事件?
的Tx
答
尝试这种情况:
private void genPassMenu_Opening(object sender, CancelEventArgs e)
{
//if (lstPasswords.SelectedIndex == -1) e.Cancel = true;
e.Cancel = (lstPasswords.SelectedIndex == -1);
}
答
简单,
private void genPassMenu_Opening(object sender, CancelEventArgs e)
{
e.Cancel = (lstPasswords.SelectedIndex == 0);
}
答
我根据其是否适合所选择的特定GUI元件通常设置每个上下文菜单项的属性。也许通过在每个菜单项上设置可见属性,而不是在整个菜单上,你可以得到你想要的结果。
答
private void genPassMenu_Opening(object sender, CancelEventArgs e)
{
//genPassMenu.Enabled = lstPasswords.SelectedIndex > 0;
//genPassMenu.Visible = lstPasswords.SelectedIndex > 0;
e.Cancel = (lstPasswords.SelectedIndex <= 0);
}
我看到了什么时候上面做了相反我稍微反转了代码。出于某种原因,平等也没有奏效。
这是正确的做法。 +1 – MadBoy 2010-03-09 15:45:39