簡體   English   中英

單擊菜單項不會使復選標記出現或消失

[英]Clicking Menu item does not make check mark appear or disappear

我有一個 C# Winforms 項目在 VS 2019 下運行,使用.Net 4.6.1 並以 AnyCPU 為目標。 一種高度復雜的表格包括一個帶有多個子菜單條目的菜單條。 在其中一個子菜單項中,我有代碼來切換菜單項旁邊的復選標記,如下所示

private void manualToolStripMenuItem_Click(object sender, EventArgs e)
{            
   manualToolStripMenuItem.Checked = !(manualToolStripMenuItem.Checked);
}

最初未選中 manualToolStripMenuItem。 當我單擊菜單項時,Checked state 會發生變化,但菜單項旁邊不會出現(或在下次單擊時消失)復選標記。 如果最初選中了 manualToolStripMenuItem,單擊該項目不會取消選中它。

包含菜單項的表單具有水平 alignment 的 SplitContainer。

如果我嘗試在僅包含帶有 SplitContainer 的表單和帶有子菜單的 MenuStrip 的新解決方案中重現此行為,我發現單擊的項目的行為符合預期,因此問題出在我的代碼上。 與我的表單的菜單項相關的設計器代碼,以及具有預期行為的測試項目的相應代碼看起來相似。

您可以像這樣修改代碼。

private void manualToolStripMenuItem_Click(object sender, EventArgs e)
{
    manualToolStripMenuItem.Checked = manualToolStripMenuItem.Checked;
}

刪除字符'.'。 單擊“manualToolStripMenuItem”時,“已檢查”已更改。

恐怕是一個虛假的問題 - 我有兩個菜單項,名稱分別為 manualToolStripMenuItem 和 manualToolStripMenuItem1。 在 manualToolStripMenuItem 的單擊事件中,我設置了 manualToolStripMenuItem1 的檢查狀態。 感謝@Jimi 和@Kyle Wang 的回復。

暫無
暫無

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

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