我想在Windows窗體窗體中設置熱鍵。例如,Ctrl + N爲新表格和Ctrl + S保存。我將如何做到這一點?如何爲Windows窗體窗體設置熱鍵
13
A
回答
36
集
創建用於KeyDown事件的處理程序:
myForm.KeyDown += new KeyEventHandler(Form_KeyDown);
處理器示例:
// Hot keys handler
void Form_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.S) // Ctrl-S Save
{
// Do what you want here
e.SuppressKeyPress = true; // Stops other controls on the form receiving event.
}
}
0
首先,你需要處理KeyDown事件,然後就可以開始觀看了您的修飾符:
private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (Control.ModifierKeys == Keys.Control && e.KeyCode == Keys.S)
{
//Do whatever
}
}
當然,你需要確保你的形式訂閱KeyDown事件。
2
我想一個KeyDown
活動的形式和一些像這樣的代碼:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == (Keys.Control | Keys.N))
{
CreateNew();
}
}
2
如果您嘗試將它們鏈接到應用程序中的菜單項,則不需要任何代碼。在菜單項上,您可以簡單地設置快捷鍵屬性,它將運行您爲菜單項單擊配置的相同事件。
0
如果需要,也可以使用隱藏菜單進行設置。只需設置menu.visible = false的屬性;
2
您還可以覆蓋在你的Form
派生類型ProcessCmdKey
這樣的:
protected override bool ProcessCmdKey(ref Message message, Keys keys)
{
switch (keys)
{
case Keys.B | Keys.Control | Keys.Alt | Keys.Shift:
// ... Process Shift+Ctrl+Alt+B ...
return true; // signal that we've processed this key
}
// run base implementation
return base.ProcessCmdKey(ref message, keys);
}
我認爲這是比較適合的熱鍵。沒有KeyPreview
需要。
3
如果你的窗口有一個菜單,你可以使用的System.Windows.Forms.ToolStripMenuItem
的ShortcutKeys
屬性:
myMenuItem.ShortcutKeys = Keys.Control | Keys.S;
在Visual Studio中,你可以將它設置菜單項的屬性頁,太多。
相關問題
- 1. Windows窗體熱鍵
- 2. 如何在Windows窗體中設置窗體的位置.net 3.5
- 3. 將窗體設置爲父窗體#
- 4. 用C#設置Windows窗體#
- 5. 如何重置Windows窗體?
- 6. 如何設置Windows窗體TabControl的鍵盤快捷鍵?
- 7. 如何設置WPF窗體作爲Windows窗體應用程序mainform在c#
- 8. Windows窗體 - 如何從父窗體
- 9. 內聯窗體集 - 如何爲子窗體設置默認值
- 10. 如何使熱鍵觸發Windows窗體按鈕?
- 11. Windows窗體 - 從父窗體
- 12. Windows窗體 - 在主窗體
- 13. 將一個Windows窗體設置爲另一個Windows窗體的MDI子窗體(或等價物)
- 14. 爲XNA窗口設置窗體圖標?
- 15. Windows窗體上的「熱軌」效果UserControl
- 16. 窗體加載不工作的熱鍵
- 17. 轉換Windows窗體到Windows Metro窗體
- 18. 如何將Windows窗體窗體調整爲小於132x38?
- 19. 如何從子窗體設置父窗體WindowState屬性?
- 20. 如何在父窗體的中心設置子窗體?
- 21. 有關設置Windows窗體窗口窗口狀態的提示
- 22. 如何將FormBorderStyle屬性設置爲None時移動Windows窗體?
- 23. 在Windows窗體中重寫設置
- 24. Windows窗體的推薦設置/屬性
- 25. 無法設置背景在Windows窗體
- 26. Windows窗體設計與ListBoxes
- 27. windows窗體&設計圖案
- 28. 爲窗體移動設置窗體的背景圖像
- 29. 將窗體的父窗體設置爲「FindWindow」
- 30. 如何在Windows窗體
任何人都可以告訴我這是什麼CreateNew()?它是一個內置函數嗎? – Riya 2011-02-19 05:01:41
@ riya7887:這只是一個例子。這不是一種內置的方法。你可以創建這樣的方法,並把所有相關的代碼放入。 – 2011-02-19 06:16:49