2

アプリケーションに攻撃方法がわからないバグがあります。基本的に、重要なイベントはしばらくすると「行方不明」になります。コンソールに書き込むイベント ハンドラーを KeyDown、KeyPressed、および KeyUp に追加しました (フォームとその TextBox の 1 つの両方に対して)。正しい順序は次のとおりです。

control_PreviewKeyDown
ShellForm_KeyDown
control_KeyDown
ShellForm_KeyPress
control_KeyPress
ShellForm_KeyUp
control_KeyUp

失敗した状態 (一貫して再現することはできません) では、キーを押すと次のイベントが発生します (TextBox にフォーカスがあります)。

ShellForm_KeyUp
control_KeyUp

Form.KeyPreview は true です。

フォーム内のすべての TextBox で同じです。それらは無効になっておらず、読み取り専用に設定されていませんが、テキストを書き込むことはできなくなりました。

問題は、どこから始めればよいか本当にわからないことです。

4

1 に答える 1

0

Application.AddMessageFilter(...)イベントの流れを傍受することから始めます。ここでいくつかのアイデアを見つけることができます。

于 2012-11-07T17:56:53.567 に答える