Formを使ってWindowsアプリを作ろう! (5/5)
作成:2013-08-24 10:47
更新:2013-08-24 10:47
更新:2013-08-24 10:47
■Clickイベントを利用する
今回は、Buttonインスタンスに「クリックした時の処理」を組み込んでいます。ユーザーの操作などは、「イベント」と呼ばれるものとして用意されています。ユーザーがなにか操作をすると、その操作に対応したイベントが発生し、そのイベントによってさまざまな処理が呼び出されるようになっているのですね。
コントロールなどをクリックした時のイベントは「Click」イベントというものです。これは、コントロールの「Click」というプロパティに、イベント発生時に実行するメソッドを組み込んで利用します。コントロールをユーザーがクリックするとClickイベントが発生し、そのコントロールのClickに組み込まれているメソッドが呼び出されるようになっているわけです。
このClickへのメソッドの組み込みと、組み込むためのメソッドの定義の仕方は以下のようになります。
●Clickへのメソッド組み込み
●Clickに組み込むメソッドの定義
Clickイベントに処理を組み込むには「+=」というものを使います。Clickは、コントロールを組み込むControlsプロパティと同じようにコレクション(配列みたいなもの)としてメソッドを管理しています。このコレクションにメソッドを追加するのが、+=なのです。反対に「-=」を使えば、既に組み込まれているメソッドを取り除くこともできます。
組み込むメソッドでは、objectとSystem.EventArgsという2つの値が引数として渡されます。objectは通常、イベントが発生したコントロールが代入されています(objectというのはクラスのもっとも基本となるクラスで、コントロール類も全てobjectのサブクラスとして設計されています)。また、EventArgsというのは、発生したイベントに関する情報がまとめられているオブジェクトです。ここからイベントに関する情報などを得ることができます。
とりあえず、これで基本的な3つのコントロールと、ボタンをクリックしたイベント処理の仕方がわかりました。イベントの処理をいろいろと書き換えれば、簡単なプログラムが作れるようになりますね!
コントロールなどをクリックした時のイベントは「Click」イベントというものです。これは、コントロールの「Click」というプロパティに、イベント発生時に実行するメソッドを組み込んで利用します。コントロールをユーザーがクリックするとClickイベントが発生し、そのコントロールのClickに組み込まれているメソッドが呼び出されるようになっているわけです。
このClickへのメソッドの組み込みと、組み込むためのメソッドの定義の仕方は以下のようになります。
●Clickへのメソッド組み込み
《コントロール》.Click += メソッド名;
●Clickに組み込むメソッドの定義
private void メソッド名 (object sender, System.EventArgs e)
{
……実行する処理……
}
Clickイベントに処理を組み込むには「+=」というものを使います。Clickは、コントロールを組み込むControlsプロパティと同じようにコレクション(配列みたいなもの)としてメソッドを管理しています。このコレクションにメソッドを追加するのが、+=なのです。反対に「-=」を使えば、既に組み込まれているメソッドを取り除くこともできます。
組み込むメソッドでは、objectとSystem.EventArgsという2つの値が引数として渡されます。objectは通常、イベントが発生したコントロールが代入されています(objectというのはクラスのもっとも基本となるクラスで、コントロール類も全てobjectのサブクラスとして設計されています)。また、EventArgsというのは、発生したイベントに関する情報がまとめられているオブジェクトです。ここからイベントに関する情報などを得ることができます。
とりあえず、これで基本的な3つのコントロールと、ボタンをクリックしたイベント処理の仕方がわかりました。イベントの処理をいろいろと書き換えれば、簡単なプログラムが作れるようになりますね!
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
using System;
using System.Drawing;
using System.Windows.Forms;
namespace MyFrmApp
{
public class MyForm : Form
{
private Label label;
private TextBox box;
private Button btn;
public MyForm()
{
this.Width = 300;
this.Height = 200;
setupControls();
}
public void setupControls()
{
label = new Label();
label.Text = "type text:";
label.Font = new Font("Geneva",12,FontStyle.Regular);
label.Height = 30;
label.Width = 300;
this.Controls.Add(label);
box = new TextBox();
box.Width = 225;
box.Top = 50;
box.Left = 25;
this.Controls.Add(box);
btn = new Button();
btn.Text = "click";
btn.Height = 30;
btn.Width = 100;
btn.Top = 100;
btn.Left = 100;
btn.Click += btn_Click;
this.Controls.Add(btn);
}
private void btn_Click(object sender, System.EventArgs e)
{
string str = box.Text;
label.Text = "you write'" + str + "'.";
}
}
}
※関連コンテンツ