如果未选择任何内容,请勿显示上下文菜单

时间:2010-03-09 15:36:20

标签: c#

如果在winforms c#应用程序的列表框中实际选择了某个项目,我希望只显示一个上下文菜单。

目前,如果正确点击右键,我可以选择一个项目,如果没有选择任何内容,我可以禁用右键菜单,但是,我不希望菜单显示。

如何实现这一目标?

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

    }

我自己尝试了这两种情况,它只适用于启用 也许开幕不是正确的选择事件?
TX

4 个答案:

答案 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);


    }

我看到上面做了相反的事情,我稍稍颠倒了代码。出于某种原因,平等也没有用。