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