2

WinFormアプリケーションのフォーカスを制御したいと思います。これは、カスタムリストボックスと他のいくつかのコンポーネントで構成されています。特定のコントロールキーの処理を回避するために、すべてのキーボードイベントをウィンドウハンドラーで管理する必要があります(たとえば、文字を押してリストボックスにフォーカスがある場合、対応する文字で始まる項目が選択されますが、これは正しい動作ではありません私のアプリケーションの場合)。どうすればこれを達成できますか?

4

1 に答える 1

4

フォームのKeyPreviewプロパティがtrueに設定されていることを確認してください。次に、このコードはリストボックスへの主要なイベントをキャンセルするために機能するはずです...

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (this.ActiveControl == listBox1)
        e.Handled = true;
}

KeyPressイベントは、すべてのシナリオで機能するとは限りません。その場合は、KeyDownイベントを試してみます。

于 2009-07-20T21:16:37.017 に答える