簡體   English   中英

如果未選擇任何內容,請勿顯示上下文菜單

[英]Don't show context menu if nothing is selected

我想只顯示一個上下文菜單,如果在winforms c#應用程序的列表框中實際選擇了一個項目。

目前,我可以選擇一個項目,如果它被正確點擊,如果沒有選擇任何內容我可以禁用右鍵菜單,但是,我不希望菜單顯示。

怎么能實現呢?

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

    }

我自己嘗試了這兩種情況,它只適用於啟用。
也許Opening不是正確的選擇事件?
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元素的適當性來設置它們的屬性。 也許通過在每個菜單項而不是整個菜單上設置visible屬性,您可以獲得所需的結果。

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


    }

我看到上面的內容確實相反,我稍稍顛倒了代碼。 出於某種原因,平等也沒有奏效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM