[英]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.