初心者のためのゲームプログラミング入門

プログラミングとゲームの杜

初心者のためのプログラミング入門 & ゲームプログラムの作り方入門

VisualBasic 2015 入門

21.算数ドリルを作ろう その6

 

今回は [ 算数ドリルを作ろう その5 ] の続きです。

前回の入力処理は、少しむずかしい部分がありましたね。
数値や文字を入力させるプログラムは、基本的にむずかしくなり易いのです。
ですから、可能であれば選択方式にすることも1つの方法です。
例えば、国名を当てるクイズであれば、名前を入力させるのではなく
4つの中から選んでもらうなどです。

 

 

スクロールバーを付けよう

結果を出力するテキストボックスのフォントが小さいので変更します。
OutBox をクリックしてプロパティを表示しましょう。
そして Font の Size プロパティを 12 に変更します。

 

vb テキストボックスのフォントサイズを変更する

 

 

実行してみましょう。
フォントが大きくなり見やすくなりました。
しかし、問題の数が多くなると上にスクロールして結果が消えてしまいます。

 

vb スクロールして消えてしまう

 

 

それではテキストボックスにスクロールバーを付けて、消えた部分も見れるようにします。
ScrollBars プロパティを None から Vertical に変更してください。
Vertical にすると縦にスクロールバーが付きます。

 

vb テキストボックスにスクロールバーを付ける

 

 

実行して確認します。
スクロールして隠れた部分も、スクロールバーを動かして見ることができるようになりました。

 

vb スクロールバーを付けると消えた部分も見れる

 

 

ついでに BackColor プロパティを White に変更します。
背景色を白にして見やすくします。

 

背景を白くして見やすくする

 

 

開始ボタンを押してドリルを始めよう

今は実行すると、すぐに問題の表示があり答えを入力できます。
これを開始ボタンを押してからにします。

まず、開始ボタンをダブルクリックして、サブルーチン StartBtn_Click を作ります。

 

vb ボタンを押して呼び出されるサブルーチンを作る

 

 

今まで1つ目の問題は Form1_Load の中で作成してました。
サブルーチン MondaiSakusei のことです。
これを削除して StartBtn_Click の中に追加します。

 

vb 初心者向けの入門サイト

 

実行してみましょう。
実行後に問題は表示されず、開始ボタンをクリックしてから問題が
表示されるようになりました。

 

 

フォーカスを設定しよう

開始ボタンを押して問題が表示されるのは良いのですが、フォーカス
ボタンに残ったままなので不便です。
答えを入力するには、入力欄をマウスでクリックしてフォーカスを移す必要があります。

フォーカスとは、一般的に焦点、または、ピントのことをいいますが、
コンピュータ用語では、現在操作できる場所(状態)をいいます。

 

vb フォーカスとは何か

 

 

マウスでクリックするのは面倒なので、開始ボタンを押したら
入力欄にフォーカスが移るようにプログラムします。
入力欄 InBox に対し Focus() を付けるだけです。

 

vb 入力フォーカスを指定する

 

 

入力させる、させないをコントロールする

開始ボタンを押して出題するように変更しました。
しかし、出題される前に入力することができてしまいます。
結果として、入力したものがそのまま表示されるという不具合が発生します。

 

エラーのような動作を直す

 

 

解決方法は、実行されたときは入力を無効、
開始ボタンが押されたときは、入力を有効にすることです。
有効・無効の切り替えには Enabled プロパティを使います。
True で有効、False で無効になります。

 

vb enable 有効無効を制御する

 

実行後に入力を無効にするため、Form1_Load の中に
InBox.Enabled = False
を追加します。
開始ボタンを押したときに有効にするため、StartBtn_Click の中に
InBox.Enabled = True
を追加します。
ここで1つ注意です。フォーカスを移す前に有効にします。

 

実行してみましょう。
実行後の入力欄は無効になっていて、開始ボタンを押すと有効になるか確認してください。

 

vb 初心者向けのプログラミング入門