如果在winforms c#应用程序的列表框中实际选择了某个项目,我希望只显示一个上下文菜单。
目前,如果正确点击右键,我可以选择一个项目,如果没有选择任何内容,我可以禁用右键菜单,但是,我不希望菜单显示。
如何实现这一目标?
private void genPassMenu_Opening(object sender, CancelEventArgs e)
{
genPassMenu.Enabled = lstPasswords.SelectedIndex > 0;
genPassMenu.Visible = lstPasswords.SelectedIndex > 0;
}
我自己尝试了这两种情况,它只适用于启用
也许开幕不是正确的选择事件?
TX
答案 0 :(得分:12)
试试这个:
private void genPassMenu_Opening(object sender, CancelEventArgs e)
{
//if (lstPasswords.SelectedIndex == -1) e.Cancel = true;
e.Cancel = (lstPasswords.SelectedIndex == -1);
}
答案 1 :(得分:4)
易,
private void genPassMenu_Opening(object sender, CancelEventArgs e)
{
e.Cancel = (lstPasswords.SelectedIndex == 0);
}
答案 2 :(得分:0)
我通常根据每个上下文菜单项对所选特定GUI元素的适当性来设置它们的属性。也许通过在每个菜单项而不是整个菜单上设置visible属性,您可以获得所需的结果。
答案 3 :(得分:0)
private void genPassMenu_Opening(object sender, CancelEventArgs e)
{
//genPassMenu.Enabled = lstPasswords.SelectedIndex > 0;
//genPassMenu.Visible = lstPasswords.SelectedIndex > 0;
e.Cancel = (lstPasswords.SelectedIndex <= 0);
}
我看到上面做了相反的事情,我稍稍颠倒了代码。出于某种原因,平等也没有用。