如果没有选中任何内容,不要显示上下文菜单。

6
我希望您只有在winforms c#应用程序中选择列表框中的项目时才能看到上下文菜单。
目前,如果正确右键单击项目,则可以选择该项目,如果未选择任何内容,则可以禁用右键单击菜单,但我不想让菜单出现。
如何实现这一点?
private void genPassMenu_Opening(object sender, CancelEventArgs e)
    {
        genPassMenu.Enabled = lstPasswords.SelectedIndex > 0;
        genPassMenu.Visible = lstPasswords.SelectedIndex > 0;

    }

我分别尝试了这两种情况,只有启用状态才有效。
也许“打开”不是正确的事件选择?
谢谢。

4个回答

12

试试这个:

private void genPassMenu_Opening(object sender, CancelEventArgs e)
{
    //if (lstPasswords.SelectedIndex == -1) e.Cancel = true;
    e.Cancel = (lstPasswords.SelectedIndex == -1);
}

4
"Easy," (容易)
    private void genPassMenu_Opening(object sender, CancelEventArgs e) 
    { 
        e.Cancel = (lstPasswords.SelectedIndex == 0); 

    } 

0

我通常根据所选的特定GUI元素的适当性设置每个上下文菜单项的属性。也许通过在每个菜单项上设置可见属性,而不是整个菜单,您可以获得想要的结果。


0
private void genPassMenu_Opening(object sender, CancelEventArgs e)
    {
        //genPassMenu.Enabled = lstPasswords.SelectedIndex > 0;
        //genPassMenu.Visible = lstPasswords.SelectedIndex > 0;
        e.Cancel = (lstPasswords.SelectedIndex <= 0);


    }

我发现当上面的代码相反时,我稍微修改了代码。由于某种原因,使用等号也不起作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接