質問

私は問題を抱えていますキャプチャ Ctrlキー + PageUpキーキーストロークのWinFormsアプリケーションでListViewコントロールでます。

私はキーストロークをキャプチャするために、このコードを使用しています -

private void ListViewEx_KeyDown(object sender, KeyEventArgs e)
{
...
if(e.Control){
if((e.KeyCode ^ Keys.Left) == 0)
    MessageBox.Show("Left"); //shows messagebox
else if((e.KeyCode ^ Keys.PageUp) == 0)
    MessageBox.Show("PageUp"); //does not
...
}

ドゥ私は、このキーを処理するためにWndProcに飛び込むする必要がありますか?おかげます。

<時間>

編集:私はこの作品のことが分かってきました、問題はListControlが彼らに着く前に、これらのキーを扱うのTabControlを囲む中だった。

役に立ちましたか?

解決

WndProcメソッドは必要ない:

if ((e.Modifiers & ModifierKeys) == Keys.Control && e.KeyCode == Keys.PageUp)
{
    // ctrl + page up was pressed
}

他のヒント

e.KeyData引数は、修飾キーを含んでいます。それは次のようになります。

  if (e.KeyData == (Keys.Control | Keys.PageDown)) {
    // Do your stuff
    Console.WriteLine("Ctrl+PgDn");
  }

のチェック

Keys.Control | Keys.PageUp
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top