雑記 |
Visual Basic 中学校 > 雑記 >
2022/9/11
この記事が対象とする製品・バージョン
![]() |
Visual Studio 2022 | ◎ | 対象です。 |
![]() |
Visual Studio 2019 | ◎ | 対象です。 |
![]() |
Visual Studio 2017 | 〇 | 対象ですが、画面や操作方法は少し違うかもしれません。 |
![]() |
Visual Studio 2015 | 〇 | 対象ですが、画面や操作方法は少し違うかもしれません。 |
![]() |
Visual Studio 2013 | 〇 | 対象ですが、画面や操作方法は少し違うかもしれません。 |
![]() |
Visual Studio 2012 | 〇 | 対象ですが、画面や操作方法は少し違うかもしれません。 |
![]() |
Visual Studio 2010 | 〇 | 対象ですが、画面や操作方法は少し違うかもしれません。 |
![]() |
Visual Studio 2008 | 〇 | 対象ですが、画面や操作方法は少し違うかもしれません。 |
![]() |
Visual Studio 2005 | 〇 | 対象ですが、画面や操作方法は少し違うかもしれません。 |
![]() |
Visual Studio 2003 | 〇 | 対象ですが、画面や操作方法は少し違うかもしれません。 |
![]() |
Visual Studio (2002) | 〇 | 対象ですが、画面や操作方法は少し違うかもしれません。 |
Visual Studio Code | × | 対象外です。 |
目次
VBでもC#でも同じ方法でできます。
対象のイベントをダブルクリックする際は、イベントの名前が表示されているところをダブルクリックするのがやりやすいです。(右側の白い方でもOK。)
ダブルクリックするとイベントハンドラーのプログラムが自動生成されコードエディターに画面が切り替わります。
C#の場合、次のようなプログラムです。
イベントハンドラーを削除するには、プロパティウィンドウのイベント一覧で対象のイベントを右クリックして「リセット」を押します。
イベントハンドラーの名前を変更するには、コードエディターでイベントハンドラーの名前を右クリックして「名前の変更」→新しい名前の入力→「適用」クリック をします。
既存のメソッドをイベントハンドラーとして登録するには、プロパティウィンドウのイベント一覧で対象のイベントを選択し、右側のボタンをクリックします。設定可能なメソッドの一覧が表示されるので選択します。
設定可能なメソッドは、引数で判断されます。
イベントとイベントハンドラーは1対1ではありません。
他のコントロールのイベントハンドラーをイベントハンドラーとして登録するには、プロパティウィンドウのイベント一覧で対象のイベントを選択し、右側のボタンをクリックします。設定可能なイベントハンドラーの一覧が表示されるので選択します。
設定可能なイベントハンドラーは、引数で判断されます。
C#の場合、button1.Click のようにコントロールとイベントを入力して += に続けてTAB を入力することで自動的にメソッドが生成されイベントハンドラーになります。
次のようにして既存の MyClickメソッドを Clickイベントのイベントハンドラーに結びつけられます。(他のイベントもOK)
C#の場合
button1.Click += MyClick;
VBの場合
AddHandler Button1.Click, AddressOf MyClick
MyClickメソッドはClickイベントに適合する引数で定義しておく必要があります。
例
C#の場合
private void MyClick(object? sender, EventArgs e)
{
MessageBox.Show("MyClick");
}
メモ:object? のように ? がないと、イベントハンドラーを結びつけるところで緑の波線で警告されます。
VBの場合
Private Sub MyClick(sender As Object, e As EventArgs)
MsgBox("MyClick")
End Sub
VBでは、メソッドの定義で Handles を使うことで メソッドとイベントを結びつけられます。
Private Sub MyClick(sender As Object, e As EventArgs) Handles Button1.Click
MsgBox("MyClick")
End Sub
ここで紹介した方法は一例です。他にもいくつかやり方があると思います。
たとえば、コントロールをダブルクリックするだけで、簡単に生成できるイベントハンドラーもあります。(ButtonのClickイベントハンドラー、FormのLoadイベントハンドラーなど)