0
private void webBrowser1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {
          if (click_counter > 0)
              {
                  click_counter = 0;
                  return;
                }                
            if (e.KeyCode == Keys.S)
                {

                    searchButton.PerformClick();
                }
        }

このコードを、webbrowser オブジェクトを持つフォーム ソース コードに追加しました。問題は、文字「S」をクリックするとメッセージボックスが3回ポップアップすることです。

どうすればその問題を取り除くことができますか?

ありがとう編集:推奨ごとにMessageBox.Showを削除しました!

解決済み: 回避策で解決しました。根本的な解決とは言えませんが。私がしたことは、クリック数を制御するために最初に if 条件を追加することです。より良い解決策は大歓迎です!

4

1 に答える 1

2

イベント ハンドラーで MessageBox を使用しないでください。メッセージ ループが発生し、イベントの通常の流れが大幅に妨げられる可能性があります。特に、PreviewKeyDown のように、Windows の通知によって発生し、メッセージ ループ ディスパッチャによって配信される種類です。

出力ウィンドウに診断を表示するには、Debug.Print() を使用します。もちろん、デバッガーのブレークポイントも忘れないでください。

于 2012-06-10T12:34:16.850 に答える