2011-01-18 1 views
4

のようなキーボード入力に応答するプログラムの一部をデバッグしたい場合Ctrl + ↑'Ctrl +上矢印'のようなキーボードイベントのデバッグ

したがって、私は領域の関心のコードにブレークポイントを配置します。しかし、Ctrlキーを押すと、プログラムはそのブレークポイントにジャンプします。これはの前に発生する私は矢印キーを押しているので、この状況をデバッグすることは困難です。

したがって、などの複数キー入力イベントをデバッグするにはCtrl + ↑

答えて

5

Visual Studioを使用してコードをデバッグする場合は、の条件をブレークポイントに追加して、この状況をデバッグすることができます。今、あなたはでき

e.Control && e.KeyCode == Keys.Up 

がそうする

Condition...自分の状況に適用される条件の例をされたあなたのコード文の左側にブレークポイントのアイコンを右クリックし、クリックしてください などのマルチキー入力イベントをデバッグします。Ctrl + ↑あなたのコードを変更する必要はありません。

4

System.Diagnostics.Debug.WriteLineを使用すると、デバッグ情報をListenersコレクションのトレースリスナーに書き込むことができます。

例:Visual Studioのメニューバーで

private void Form1_KeyUp(object sender, KeyEventArgs e) 
{ 
    if (e.Control && e.KeyCode == Keys.Up) 
     System.Diagnostics.Debug.WriteLine("Up with control have pressed"); 
} 

、出力を確認するために表示 - >出力を選択します。

2

どのようなイベントを使用しますか? KeyDown? KeyUpを使用してみてください。 Ctrl +キーの組み合わせを解除するまでは起動しません。

+0

KEY-UPが私の問題を解決しました。しかし申し訳ありませんが、それは私が尋ねた質問に近づいたからといって正しい答えを選んだのです。私の本当の問題を解決するために、私はあなたの記事からKey-Upアイデアを得ました。 – Bohn

+0

LOL私のアイデアが問題を解決しているのに、答えがマークされた投稿があなたの質問に近い理由は分かりませんが、OK:そうです。あなたは少なくとも私を投票することができます: – dzendras

1

Debug.Assertの方法をご覧ください。それはあなたが条件に基づいてのみデバッグすることができます。条件がfalseになるまで実行が継続されます。 Debug.Assert(NOT up key pressed); これにより、キーの押下を無視するようになります(上のキーは無視します)。

1

通常、コンソールまたはエラーログにいくつかのメッセージを出力することができます。そうしないと、デバッガのUIがコードに干渉します。たとえば、Visual Studioデバッガは、ヒットブレークポイントで式の値を出力できるため、特別なコードを書く必要はありません。

+0

"、打撃ブレークポイントの式の値を印刷できるので、特別なコードを書く必要はありません。 ... それは何ですか?どうやって ? – Bohn

+1

ブレークポイント上の@BDotAを右クリックし、「ヒットしたら」を選択すると、指示のあるウィンドウが表示されます。"print message"と "executionを続行する"チェックボックスを押し、 "variable:{myVar}"のように式を入力します。このブレークポイントを打つとmyVarの値が出力ウィンドウに出力されます。 – Bazurbat

+0

非常にいいです...ありがとう – Bohn

2

if節にブレークポイントを入れるのはどうですか?そうすれば、条件が満たされた場合にのみ壊れます。

関連する問題