我有一個ToolStripMenuItem,作爲連接到我的Form的MenuStrip的下拉菜單。此菜單的內容根據表格其餘部分的狀態而改變,並填充到一個循環中。在循環中填充ShortcutKeys
問題是,現在我想添加功能,該菜單中的項目有一個基於他們在列表中的位置的鍵盤快捷鍵。列表中的第一個項目應該是Ctrl + 1,第二個Ctrl + 2等。
由於ShortcutKeys使用Keys enum設置我不知道如何將增量值映射到枚舉中的適當值。我希望像這樣的工作,但事實並非如此:
newToolStripMenuItem.ShortcutKeys = Keys.Control | (Keys.D0 + menuItemNumber++);
編輯
有可能是別的事情上。根據this asker我的初步解決方案應該已經工作,並且由Migol提出的解決方案產生相同的結果。 ShortcutKeys中的值顯示爲一些奇怪的字符組合,沒有明顯的模式。
您剛剛被調試器顯示的內容弄糊塗了。由於Keys枚舉具有[Flags]屬性,所以這會讓人感到困惑,這只是部分正確。繼續前進,你沒有真正的問題。 –
可能重複[關於在C#winform覆蓋ProcessCMDKey](http://stackoverflow.com/questions/14561986/about-override-processcmdkey-in-c-sharp-winform) –
@HansPassant啊是的,這是有道理的,但如果這兩種解決方案都顯示相同的東西,我可能設置正確,還有一些其他原因,爲什麼它不工作。哦,對於你的第二個評論,我的問題不在於我檢查價值。我不在乎它在代碼中的樣子,但它需要在按下按鍵時觸發事件。 – Fr33dan