読者です 読者をやめる 読者になる 読者になる

C#_プログラム内からイベントハンドラを呼ぶ

Click の場合

button1_Click( ) メソッドをプログラム内で呼び出すときは、下記を使う。

button1.PerformClick();

ただし、CanSelect プロパティが True であることが必要。
例えば、Visible プロパティが False だとCanSelect も False になり使用できない。
button 以外にも、MenuItem、RadioButton、ToolStripItem などのコントロールにもある。

 

それ以外の場合

Scroll や MouseMove などのイベントハンドラメソッドを呼びたい時。
PerformClick 的なものを探したが時間かかりそうだった。ので、

1.fuga メソッドを作成する。

2.fuga メソッドにイベントハンドラコードを移動

3.イベントハンドラ内で fuga メソッドを呼ぶ

4.プログラム内で fuga メソッドを呼ぶ

ex )

    // button1 上でマウスが動いた時の処理
    private void button1_MouseMove(object sender, MouseEventArgs e)
    {
        MessageBox.Show("Hey");
    }

    private void test()
    {
        // この関数が呼ばれた時にも button1_MouseMove( )の処理を実行したい
    }

↓ のように書く

    private void button1_MouseMove(object sender, MouseEventArgs e)
    {
        mouseMove();
    }

    private void test()
    {
        mouseMove();
    }

    private void mouseMove()
    {
        MessageBox.Show("Hey");
    }

 こちら参照。
http://wa3.i-3-i.info/word11493.html
https://oshiete.goo.ne.jp/qa/2777009.html
http://dobon.net/vb/dotnet/control/performclick.html

 

以上。

--Memo--
イベント:
コンピュータ上で発生する事象 ( ボタンが押された等 )。

イベントハンドラ event handler:
イベントが発生した時に呼び出される処理
JavaScript ではイベントをキャッチするグローブのこと。

event:出来事、事象
handler:扱う、操縦する、処理する人