我創建了一個用戶控件,其中包含多個文本框,組合框等。用戶控件託管在一個正常窗體上。我想將鍵盤快捷鍵分配給文本框,組合框。因此,當Ctrl + F一起按下時,焦點將放置在其中一個文本框中。我已經嘗試使用OnPreviewKeyDown來檢查這些鍵,然後在用戶控件上觸發關鍵點方法。調試器甚至不會在窗體上點擊OnPreviewKeyDown方法。我已經在表單上啓用了keyPreview爲true。我在下面提供了一些我的實驗。C#UserControl鍵盤快捷方式
任何人都可以指出我要去哪裏錯了嗎?我不相信這樣的事情是如此困難。我必須錯過簡單的東西。謝謝
protected override void OnPreviewKeyDown(PreviewKeyDownEventArgs e)
{
Keys k = e.KeyCode;
UserControl1.UserControl_KeyPress(k);
}
public void UserControl_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 'F')
tbxHostName.Focus();
switch (e.KeyCode)
{
case Keys.F:
this.cmbxProtocol.Focus();
break;
case Keys.H:
this.tbxHostName.Focus();
break;
default:
break;
}
}
你知道用戶控件的焦點嗎?其他人可能需要處理表單中的關鍵事件,並使該代碼選擇用戶控件中的文本區域。 – mortb
指示是否這是WPF或Winforms – Indy9000