VS事始め (4) : イベント発生!
今回はイベントの追加に関してお話します。
これまでフォームにコントロールを配置するところまではやっています。
このコントロールにはイベントに対する動作を指定することができます。
たとえば,ボタンを"押す"というイベントが発生したとき,メッセージボックスを表示する,といった感じですね。
まあ,いつものことですがいろいろ語るよりやってみた方が早いってことで早速行ってみましょう。
フォームに以下のようにコントロールを貼り付けてください。
それぞれのコントロールには以下のような名前 (Name) を付けました。
TextBox textBox Button(左側) btnA Button(右側) btnB
配置はお任せします。
仕様が自由にできるのが自作プログラムの醍醐味です。
ちなみに,button を btn と省略するのは私の癖なので,お気になさらないでください。
まず btnA を選択し,プロパティウィンドウのイベントを選択します(下図赤枠)。
そこから,Click というイベントを探して選択します。
この Click イベントは,ボタンが押されたときに発生するイベントです。
選択したら Enter を押してください。
Form1.cs が開いて,下の図のように btnA に対するソースが追加されていると思います。
ここに,
private void btnA_Click(object sender, EventArgs e)
{
textBox.Text = "ほげ";
}
などと入力してください。
そして,ビルドした後実行します。
左側のボタンをクリックすると,テキストボックスに文字が入力されたと思います。
同様に btnB に対してもイベントを追加し,
private void btnB_Click(object sender, EventArgs e)
{
textBox.Text = "むにゃ";
}
などと入力してください。
ボタンを交互に押すことで文字列が変化させられると思います。
これで,イベントの追加に関してはおしまいなのですが,追加の仕方がもう1通りあります。
btnB のプロパティウィンドウを見てください。
Click の右に下向きの矢印がついたドロップボタンがありますよね。
これを選んでみましょう。
そうすると,ソース (Form1.cs) の中に書かれたイベントの一覧が出てきます。
この中からイベントを選択し,そのコントロールのイベントとすることができます。
ためしに btnB の Click イベントに btnA_Click を割り当ててみましょう。
できたら実行してください。
どちらを押しても,文字が変わらなくなりましたよね。
イベントは発生しているので,テキストボックスの文字を消してもう1度押しても同じ結果です。
これはメニューバーとツールバーを使うときによくやります。
たとえば,ファイルを開くにはメニューバーからでもツールバーからでもできます。
しかし,ボタンが違うのでそれぞれにイベントを割り当てる必要がありますが,同じことを2度書くのは面倒ですよね。
そんなわけで,片方だけ定義した後,もう片方はこの方法で割り当てることがあります。
これにてイベント終了です。