2011-01-06 8 views
0

このコードは、押されたボタンのハッシュコードを表示しますが、私がコントロールボタンを押しても何もしません。誰かを助けることができますか?e.keyCharはCtrlのために機能しません

private void treeView1_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     MessageBox.Show(e.KeyChar.GetHashCode().ToString()); 
    } 

のC#のWinForms

+1

http://stackoverflow.com/questio ns/1367700 –

+0

[KeyDownとKeyPressの違いは何ですか?](http://stackoverflow.com/questions/1367700/whats-the-difference-between-keydown-and-keypress-in-net ) – Femaref

+0

修飾キーも表示する場合は、e.KeyDataを使用します。 –

答えて

4

Ctrlキーを修飾キーなので、それ自体でキープレスイベントを生成しません。

タイプされた実際の文字(たとえば、「A」)としてキー押しを考えます。対照的に、モディファイアキー(Ctrl、Alt、Shift)は通常は何も入力しませんが、他のキーと組み合わせてその効果を変更する傾向があります(例えば、 "a" int "A"; ctrl Altキーを押して「A」で始まるメインメニューを開くことができます)

Ctrlキーを使用するには、通常、次のいずれかの状態をチェックします。 (例えば、 "A"が押されたとき、キー押下が "A"か "Ctrl + A"を意味するかどうかを判断するために)通常のキーが押されているか、キーの状態を非同期にチェックするかもしれません(例えば、ドラッグして1つの軸だけにドラッグするように、またはドラッグするファイルを移動するのではなくコピーするなど、ドラッグに変更を適用する場合は押し下げます。

関連する問題