Form001. フォームにコントロール(ボタンとか)を設置する

過去のブログのアーカイブ
この記事は前身のブログのアーカイブを引き継いだものです. 画像が正しく表示できないなど,コンテンツの表示に問題がある恐れがあります.

フォームアプリケーションを作った次はボタンや文字を入力する欄を作ってみましょう。

プロジェクトを作成したところから説明を開始します。またプロジェクトを作成してない場合はこちらを参照してください。
100. フォームアプリケーションプロジェクトの作り方

前提知識

まず用語の説明からします。

コントロール

コントロールとは、ボタンやテキストボックス(文字をいれる欄) 、チェックボックス(チェックする欄)など、ユーザー(使う人)が操作できるものの総称です。
他にもラジオボックス、ラベル、リストボックスなどがあります。

ツールボックスを表示させる

環境によって表示のさせ方が変わります。1つずつ確かめてください。

画面左端に隠れてるケース

インストールしたての場合はこのケースだと思います。画面左端にツールボックスが隠れている場合はクリックすれば表示されます。
d14

画面に表示されてない場合

メニューバーから[表示(V)]>>[ツールボックス(X)]から表示させることができます。
そうするとこんなのが出てくるはず。
toolwindow

フォームに貼り付ける

使い方は至って簡単。貼り付けたいコントロールをクリックして、フォーム上でクリック、または作りたい場所でドラッグすればできます。
試しにこんなフォームを作ってみましょう。
d15
それぞれ、ラベル(Label)、テキストボックス(TextBox)、ボタン(Button)です。
※豆知識: フォーム上に文字を表示させたい場合は、かならずラベルを貼り付ける必要があります。直接文字を表示させるということはできません。

コントロールの名前を確認する

それぞれのココントロールは裏では変数になっています。その変数名は自動的につけられるのですが、それを確認する方法を覚えましょう。
まずは変数名を知りたいコントロールを選択します。今回はラベルを選択してみます。
d16
そしてF4をクリックすると、プロパティウィンドウが出てきます。
d17上部にlabel1と太字で書かれていますね。これが変数名です。
次にテキストボックスを選択して同じ操作をしてみてください。きっと「textBox1」と書かれているはずです。

実際にプログラムを書いてみよう

今回作ってみるプログラムは「テキストボックスに書かれた文字をラベルに表示する」というプログラムです。
まず、プログラムが動く流れをしりましょう。
コンソールアプリケーションとは違って、フォームアプリケーションはイベントと言われる通知を元に動きます。
例えば、ボタンがクリックされた。テキストボックスに書かれている文字列の内容が変わった。チェックボックスにチェックされた。などです。
コンソールアプリケーションの場合、原則は書かれたコードを順番に実行するだけです。ですが、フォームアプリケーションはユーザー(使ってる人)から操作されるまで、これといった動作はしないですよね。
これがコンソールとフォームの大きな違いなのです。

イベントを作成する

今回は「ボタンをクリックされたら~」というイベントを設定します。
まずはボタンをクリックして選択します。
d19
そして先ほどと同じようにF4を押してプロパティウィンドウを開きます。
d20
そしてイナズマのマークを選択すると、イベントの設定画面に切り替わります。
「ボタンがクリックされたら~」というイベントを設定したいので、Clickをダブルクリックしましょう。
そうすると、勝手にイベントのコードを作ってくれます。
d18
自動的にbutton1_Clickというメソッドが作られましたね。ここにコードを書けばいいのです。

コードを書こう

それぞれ、ラベルはlabel1、テキストボックスはtextBox1という名前になってたと思います。
まず、ラベルに表示されている文字列はTextというプロパティで設定/取得できます。そして、テキストボックスに入力されている文字列はTextというプロパティで設定/取得できます。(同じ名前になってますが、別物のプロパティです。紛らわしい…)
さて、今回は「テキストボックスの内容をラベルに表示する」でしたよね。なので、これをコードに書くと

label1.Text = textBox1.Text;

というようになります。

コンパイルして動かそう

それでは実際に動かしてみましょう!
F5、またはCtrl+F5を押せば実行されます。もしくはメニューバーから[デバッグ(D)]>>[デバッグの開始(S)]で動きます。なお押しても一瞬で起動されるわけではないです。少し待ってください。
2016-07-22 (2)
コンパイルに成功したら画面が出てきます。試しに何か入力してボタンを押してみてください。ラベルの文字が変わるはずです。

まとめ

プログラミングというのは非常にシンプルなものなのです。そう難しく考える必要はないですよ
基本的に、書いたとおりに動いてくれるものです。思い通りに動かない時はそれは書いたコードが間違っているだけなのです。
思い通りに動かない?そんな時はコードを見なおしてみましょう