VisualBasic 2017 入門
17.算数ドリルを作ろう その2
今回は [ 算数ドリルを作ろう ] の続きです。
過去に作業したことがある手順については、少しずつ説明を省略していきます。
もし分からなくなったら前のページを読み返してみてください。
テキストボックスを調整しよう
テキストボックスは初めて使いますね。
実行して入力を試してみましょう。12345 と入力します。
文字が小さくて左寄りですね。
まず、フォントサイズを大きくします。ラベルの時と同じです。
テキストボックスをクリックして、Size プロパティを 16 に変更します。
続けて文字の配置も変更しましょう。
TextAlign プロパティを Left (左寄り) から Center (中央) に変更します。
実行してみます。
テキストボックスに入力した文字が大きくなり、中央配置になりました。
Name プロパティを変更しよう
ラベルやテキストボックスをフォームに配置したとき、自動的に名前が付きます。
Label1 や TextBox1 などです。
あつかうオブジェクトが少なければ問題ないのですが、多くなってくると
デザイン画面に戻って名前を確認することになります。
そうならないように、オブジェクトの機能に合わせて名前を変えていくのが望ましいです。
ということでテキストボックス TextBox1 の名前を変えてみましょう。
Name プロパティを変更します。
名前を InBox としました。
InBox と入力して Enter キーを押します。
するとオブジェクトの名前が InBox になります。
今回の課題とは違うプログラムを作成するときは、もっと分かり易い名前が
いいと思います。
自分なりのルールを作って名前を付けていきましょう。
KeyPress イベント
解答を入力するためにテキストボックスを配置しました。
しかし、配置しただけでは役に立ちません。
入力した値をプログラム内部で使えるようにします。
それではコード編集画面にするため、フォームの何も無い所で
ダブルクリックして開きましょう。
この方法では Form1_Load が自動で作成されますが、後で必要になるので
ちょうど良いでしょう。
ここでテキストボックス InBox に対してイベントを用意します。
KeyPress というイベントで、キーボードから文字キーが押されたときに発生します。
作り方が今までとは違います。
テキストボックスをダブルクリックしても作れないので注意してください。
テキストボックスの中で何かキーを押すと、この InBox_KeyPress が呼ばれます。
どんな動きになるのか Console.WriteLine で確認してみましょう。
押したキーは e.KeyChar で、
テキストボックスに入力された内容は InBox.Text で確認できます。
なお &(アンド) を使えば文字列をつなげることができます。
実行して 123456 と入力してみましょう。
入力しながら出力ウィンドウを確認すれば、KeyPress の動作がよく分かります。
InBox_KeyPress が呼ばれたとき、押したキーが InBox.Text に入ってないことが
確認できます。
このように動作をしっかり確認しておくことが、
正しいプログラムを組む助けになります。
Enter キーで入力確定
答えの入力をどうするか、少し考えてみましょう。
数値だけ入力してもらうと、入力途中なのか完了しているのか分かりません。
入力が完了したという合図が必要です。
今回は Enter キーが押されたら完了したことにします。
InBox_KeyPress の中を次のように変更してください。
If 文を使って Chr ( Keys.Enter ) と比較します。これは Enter キーのコードを
取得する方法です。
これが入力されたものと同じなら Enter キーが押されたことになります。
InBox.Text = ""
これはテキストボックスの中をクリアしています。
実行してみましょう。
適当な数字を入力してみて下さい。Enter キーを押すまで入力は続きます。
Enter キーを押すことで入力は確定されます。