![](/img/trans.png)
[英]C# Windows Forms Applications Hotkey - KeyDown event not working
[英]Keydown event how to listen with hotkey
我已經將ctrl +注冊為熱鍵,並且我想在按下熱鍵時顯示一個窗口,而不是釋放leftctrl鍵並切換`鍵來執行其他操作,就像alt + tab切換應用程序一樣。這是代碼。
private void ListOnKeyDown(object sender, KeyEventArgs e)
{
if (e.SystemKey==Key.LeftCtrl && e.Key == Key.Oem3)
{
m_host.SelectNext();
}
}
但是我發現這種方式只能觸發一個鍵,那么觸發鍵事件的正確方法是什么?
這是調試信息。 調試信息
因為onKeyDown事件僅適用於一個鍵,所以為了同時使用兩個鍵,您幾乎不需要即興創作:
bool firstkeyisOn = false;
private void ListOnKeyDown(object sender, KeyEventArgs e)
{
if (e.SystemKey==Key.LeftCtrl/*Or other key by choice*/)
{
firstkeyisOn = true;
e.Handled = true;
return;
}
if(firstkeyisOn && (e.Key == Key.Oem3/*Or other key by choice*/))
{
m_host.SelectNext();
}
}
private void ListOnKeyUp(object sender, KeyEventArgs e)
{
if (e.SystemKey==Key.LeftCtrl/*Key must be same as holding one*/)
{
firstkeyisOn = false;
}
//or
//firstkeyisOn = false;
}
要取消熱鍵模式,只需在OnKeyUp事件下添加firstkeyisOn = false即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.