我正在使用Visual Studio 2008中的C#WinForm應用程序。我已經添加了一些按鈕的鍵盤快捷鍵,通過重寫ProcessCmdKey觸發按鈕單擊(CTRL + R,CTRL B等...)。如何在按鈕上顯示提示有鍵盤快捷方式?
當用戶按住CTRL鍵時,我想用快捷文本(「CTRL + R」)顯示提示,工具提示或按鈕旁邊的按鈕,以便用戶可以看到哪些按鈕具有快捷鍵並什麼是組合。
有沒有人有任何其他建議如何解決這個問題?
我正在使用Visual Studio 2008中的C#WinForm應用程序。我已經添加了一些按鈕的鍵盤快捷鍵,通過重寫ProcessCmdKey觸發按鈕單擊(CTRL + R,CTRL B等...)。如何在按鈕上顯示提示有鍵盤快捷方式?
當用戶按住CTRL鍵時,我想用快捷文本(「CTRL + R」)顯示提示,工具提示或按鈕旁邊的按鈕,以便用戶可以看到哪些按鈕具有快捷鍵並什麼是組合。
有沒有人有任何其他建議如何解決這個問題?
我通過創建一個WPF控件來解決此問題,該控件看起來與標準工具提示(帶有標籤的小框)類似。然後,我在表單上對ProcessCmdKey和OnKeyUp進行覆蓋,以聽取CTRL鍵和鍵入。
當用戶按下並按住CTRL鍵時,我遍歷所有具有快捷鍵的控件,並在該控件上創建一個WPF控件。對於每個WPF控件,我都設置了相應的快捷方式文本。當CTRL鍵被釋放時,我刪除OnKeyUp中的所有WPF控件。
我不明白爲什麼你需要在WinForms項目中創建一個WPF控件。你想要一個工具提示,只需使用工具提示。不需要WPF互操作。 –
在標題中可以使用&
。當用戶按Alt
鍵時,按鈕標題中的&
之後的字符變成下劃線並且用戶按下下劃線字符鍵時。點擊按鈕事件被觸發。
(對不起,忘記此條款)。
由於某些原因,我們不能在這個項目中使用Alt鍵和標題,我們必須使用CTRL鍵...... – Zeno
您的意思是無論哪個控件具有焦點都應接收CTRL + R鍵事件並顯示工具提示? –
否。具有快捷鍵的所有控件都應在用戶按住CTRL鍵時顯示其快捷文本。 – Zeno
@Zeno:這是Alt鍵,而不是Ctrl。 –