3

私がやろうとしているのは、winformをクリックするたびに、winformにデバッグ行を表示させることです。しかし、私がそうするとき、何も起こりません。ボタン/その他のクリックイベントを発生させる方法を知っています。しかし、必要なのは、WinForm内の任意の場所をクリックできるようにすることです。

私は過去1時間これをグーグルで検索しましたが、私が間違っていることを確認できません。私の知る限り、このコードはマウスクリックを検出するのに正しいはずです。このメソッドは、form1.csクラスで保持されます。

private void mouseClick(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)
        Trace.WriteLine("Mouse clicked");
}

ブレーキポイントを設定してみましたが、どちらもトリガーされません。私が間違っているのは何ですか?

ばかげた初心者の質問で申し訳ありませんが、私はWinFormプログラミングに非常に慣れていません。

4

4 に答える 4

9

EventHandlerを追加する方法:

public Form1()
{
    InitializeComponent();
    // This line should you place in the InitializeComponent() method.
    this.MouseClick += mouseClick;
}
于 2013-02-01T11:27:46.620 に答える
9

Visual Studioに組み込まれているエディターの使用:

ここに画像の説明を入力してください

  1. プロパティウィンドウに移動します(表示されない場合は、を押しますAlt + Enter)。
  2. イベントアイコンを選択します(稲妻のように見えます)。
  3. Clickの右側にある空のComboBoxをダブルクリックします。
  4. コードを配置できる空のメソッドが表示されます。
于 2013-02-01T11:30:48.973 に答える
4

メソッド自体は正しいです。MouseClick実際の問題は、このメソッドをイベントに追加していないことだと思います。

C#(および他のほとんどの言語でも)では、イベントはイベントハンドラーによって処理されます。OnClickWindowsフォームとコントロールには、またはなど、コントロールで発生するすべてのイベントのイベントがありますOnResize。これらのイベントにメソッドを追加すると、実際のイベントが発生したときにメソッドが自動的に呼び出されます。Form_Loadフォームのコンストラクター、 -method、InitializeComponent-methodなどに次の行を追加するだけです。

this.MouseClick += mouseClick;

これで、MouseClickイベントが発生するたびに、メソッドmouseClickが自動的に呼び出されます。

于 2013-02-01T11:30:18.557 に答える
3

イベントC#プログラミングガイドを読むことをお勧めし ます。次のようなイベントハンドラーを追加する必要があります。

form1.MouseClick += mouseClick;
于 2013-02-01T11:29:56.783 に答える