[英]Focus should not move on arrow keys in C#
我正在為PTZ開發一個應用程序,我已經采取了一個網格,當我按向上箭頭鍵然后在UP Arroa鍵的KeyDown事件我開始我的運動和在KeyUp甚至我停止運動。 但是當我按下Pres鍵時它的KeyDown事件被調用,然后焦點被移動到另一個控件,所以它的KeyUp沒有被調用....所以我想在arrowkeys上停止這個焦點運動,這樣我就可以得到這兩個事件...... ..那怎么做。
我想你可以覆蓋它。
這可能會有所幫助: 如何在C#中使用箭頭禁用WinForm上的導航?
您可以使用Diamonddrake中的此代碼段,如下所示:在表單正文中粘貼代碼段,例如其他方法
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if ((keyData == Keys.Right) || (keyData == Keys.Left) ||
(keyData == Keys.Up) || (keyData == Keys.Down))
{
//Do custom stuff or nothing.
//true if key was processed by control, false otherwise
return true;
}
else
{
return base.ProcessCmdKey(ref msg, keyData);
}
}
請注意,對於某些控件(如ComboBox),可能需要使用向上和向下鍵在項目之間向上和向下滾動,因此如果要使用它們,請刪除此部分代碼段(keyData == Keys.Up) || (keyData == Keys.Down)
(keyData == Keys.Up) || (keyData == Keys.Down)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.