2012-06-08 85 views
1

我正在使用Visual Studio 2008中的C#WinForm應用程序。我已經添加了一些按鈕的鍵盤快捷鍵,通過重寫ProcessCmdKey觸發按鈕單擊(CTRL + R,CTRL B等...)。如何在按鈕上顯示提示有鍵盤快捷方式?

當用戶按住CTRL鍵時,我想用快捷文本(「CTRL + R」)顯示提示,工具提示或按鈕旁邊的按鈕,以便用戶可以看到哪些按鈕具有快捷鍵並什麼是組合。

有沒有人有任何其他建議如何解決這個問題?

+0

您的意思是無論哪個控件具有焦點都應接收CTRL + R鍵事件並顯示工具提示? –

+0

否。具有快捷鍵的所有控件都應在用戶按住CTRL鍵時顯示其快捷文本。 – Zeno

+1

@Zeno:這是Alt鍵,而不是Ctrl。 –

回答

0

我通過創建一個WPF控件來解決此問題,該控件看起來與標準工具提示(帶有標籤的小框)類似。然後,我在表單上對ProcessCmdKey和OnKeyUp進行覆蓋,以聽取CTRL鍵和鍵入。

當用戶按下並按住CTRL鍵時,我遍歷所有具有快捷鍵的控件,並在該控件上創建一個WPF控件。對於每個WPF控件,我都設置了相應的快捷方式文本。當CTRL鍵被釋放時,我刪除OnKeyUp中的所有WPF控件。

+0

我不明白爲什麼你需要在WinForms項目中創建一個WPF控件。你想要一個工具提示,只需使用工具提示。不需要WPF互操作。 –

1

在標題中可以使用&。當用戶按Alt鍵時,按鈕標題中的&之後的字符變成下劃線並且用戶按下下劃線字符鍵時。點擊按鈕事件被觸發。

(對不起,忘記此條款)。

+0

由於某些原因,我們不能在這個項目中使用Alt鍵和標題,我們必須使用CTRL鍵...... – Zeno

相關問題