コントロール

Page updated :

The page you are currently viewing does not support the selected display language.

コントロールはツールなどで使用されることが多いので、使い方などを簡単に説明していきたいと思います。前回の Tips のプロジェクトを使用して説明していきます。

まず、コントロールは基本的にフォームに配置することになるので、ソリューションエクスプローラーから MainForm.cs を右クリックして「デザイナの表示」をクリックしてください。(MainForm.cs をダブルクリックしても開けます)

デザイナの表示

フォームのデザイナ

次に左にあるツールボックスを開きます。(無い場合はメニューの「表示」から「ツールボックス」を選択してください)

ツールボックス

すると、下のようなリストが表示されます。これが配置できるコントロールやコンポーネントのリストになります。

コントロールのリスト

では、一番上の「Button」を使ってみましょう。Button はそのままボタンで、基本的に押すことによって何らかの処理を行うようにするためのコントロールです。まず、「Button」をクリックしてください。マウスのカーソルがボタンのアイコンになるはずです。

ボタン

次にフォームをクリック、または配置したい大きさにドラッグしてみてください。フォーム上にボタンが配置できるはずです。

ボタン配置

では、一度実行してみてください。多分エラーは起きないはずなので普通に起動できるはずです。きちんとボタンが押せるはずです。

実行

ちなみにボタンは押せますが、押しても何も起こりません。まだ、処理内容を記述していないからです。それでも基本的な動作は初めから備わっているので、プログラマが余計な処理に手を割くことはありません。

起動したフォームを閉じてください。このように配置するだけならとても簡単に行うことが出来ます。


では、コントロールを使用して簡単なイベントを作成してみたいと思います。コントロールを使った処理は基本的にイベントと呼ばれます。

ツールボックスから「Label」と「TextBox」をそれぞれフォームに配置してください。大きさや位置は適当でかまいません。

テキストボックスとラベル配置

ここで行う処理は「テキストボックスに入力しボタンを押すと、ラベルに入力した内容が表示される」です。よって、ここで使用するイベントは「ボタンを押したとき」のみです。テキストボックスは入力するため、ラベルは出力するためだけに使うので、この2つのイベントは作成する必要はありません。

では、ボタンをクリックして選択してください。選択されているコントロールには枠が表示されます。ちなみに枠にある四角をドラッグすると大きさを変更できます。

選択

次にプロパティを開きます。ウインドウの右にあるか、なければボタンを右クリックして「プロパティ」を選択します。

ボタンのプロパティ

ボタンに関して細かい設定が出来ますが、とりあえず何も変えないので、イベントを開きます。イベントはプロパティウインドウの上にある「稲妻マーク」をクリックして開きます。

開いたら、「Click」イベントを探して、その項目をダブルクリックします。すると MainForm.cs にボタンをクリックしたときの処理を記述するメソッドが追加されるはずです。

Click イベント

コード追加

ではここに処理を記述します。.NET Framework はとてもよく出来ており、今回行う処理はたった1行追加するだけで出来てしまいます。次のコードの赤い部分を追加入力してください。

private void button1_Click(object sender, EventArgs e)
{
  this.label1.Text = this.textBox1.Text;
}

ここでやっているのは、「テキストボックスに表示されている文字列」を「ラベルの表示されているテキスト」にコピー(代入)するです。たったこれだけです。では実行してみてください。

テキスト入力

上のようにテキストボックスに文字を入力してください。次にボタンを押すと下のようにラベルがテキストボックスと同じ文字列に変わるはずです。

文字列コピー


今回は簡単にコントロールの使い方を説明しました。他にもいろいろコントロールがあるのでぜひ試してみてください。コントロールの使い方や説明は他のホームページなどで詳しく説明されているので、検索して探してみるといいかもしれません。

DirectX Tips でもたまにコントロールを使うことがあるので、いろんな使い方を覚えていればかなり応用できるようになるはずです。