WinFormsアプリをもっと使いやすくしよう!入力チェックとクリアボタンを追加する

広告

昨日は、コンソールアプリをWindowsアプリ(WinForms)へ移植しました。

今日は、そのアプリをもっと使いやすくしてみましょう。

実際のソフトウェアでは、

  • 間違った入力を防ぐ
  • ボタン1つで入力を消す

といった工夫がされています。

今回は、その中でもよく使われる機能を追加していきます。


今日の完成イメージ

昨日の画面に、

  • 「クリア」ボタン
  • 入力チェック
  • メッセージボックス

を追加します。

数字以外を入力すると

数字を入力してください。

というメッセージが表示されます。


クリアボタンを追加しよう

フォームへ Button を1つ追加します。

コントロールNameプロパティTextプロパティ
ButtonbuttonClearクリア

ボタンをダブルクリックしよう

クリアボタンをダブルクリックすると、

private void buttonClear_Click(object sender, EventArgs e)
{

}

が作成されます。


入力をすべて消してみよう

次のコードを書いてみましょう。

private void buttonClear_Click(object sender, EventArgs e)
{
    textBoxEI.Clear();
    textBoxEO.Clear();
    textBoxILF.Clear();
    textBoxEIF.Clear();
    textBoxEQ.Clear();
    textBoxCoef.Clear();

    labelTotal.Text = "";
    labelFP.Text = "";

    textBoxEI.Focus();
}

これで

  • 入力欄
  • 計算結果

がすべて消えます。

さらに

textBoxEI.Focus();

によって、

最初の入力欄へカーソルが戻ります。


数字以外を入力するとどうなる?

例えば

abc

を入力して計算すると、

プログラムは途中で止まってしまいます。

これは

Convert.ToInt32()

数字ではない文字を変換できないためです。


TryParseを使ってみよう

今回は

Convert.ToInt32()

ではなく

int.TryParse()

を使います。


EIだけ変更してみよう

まずは EI だけ変更します。

今まで

int ei = Convert.ToInt32(textBoxEI.Text);

でした。

これを

if (!int.TryParse(textBoxEI.Text, out int ei))
{
    MessageBox.Show("EIには数字を入力してください。");
    textBoxEI.Focus();
    return;
}

へ変更します。


TryParseとは?

int.TryParse()

「数字へ変換できるか試す」

という命令です。

変換できれば

true

変換できなければ

false

になります。

そのため、

数字ではない場合だけ

MessageBox.Show()

でメッセージを表示できます。


MessageBoxを使ってみよう

MessageBox.Show("EIには数字を入力してください。");

を実行すると、

次のような画面になります。

┌────────────────────────────────┐
│ EIには数字を入力してください。    │
│                    │
│        [OK]              │
└────────────────────────────────┘

Windowsアプリでは、

このようなメッセージ画面を

MessageBox

と呼びます。


他の入力欄も同じようにしよう

EO

ILF

EIF

EQ

も同じように

int.TryParse()

へ変更してみましょう。


補正係数もチェックしよう

補正係数は小数なので

double.TryParse()

を使います。

if (!double.TryParse(textBoxCoef.Text, out double coef))
{
    MessageBox.Show("補正係数には数字を入力してください。");
    textBoxCoef.Focus();
    return;
}

実行してみよう

例えば

EIへ

abc

を入力して

「計算する」

を押してみましょう。

すると

EIには数字を入力してください。

と表示されます。


まとめ

今回は、昨日作成したWinFormsアプリをさらに使いやすくしました。

今日覚えてほしいポイントは次の4つです。

  • Clear() は入力欄を空にする
  • Focus() はカーソルを移動する
  • TryParse() は安全に数字へ変換する
  • MessageBox.Show() はメッセージを表示する

実際の業務で使われるWindowsアプリも、このように「正しく入力できること」や「使いやすさ」を考えて作られています。

今回追加した機能は小さな改善ですが、「動けばよいプログラム」から「使いやすいプログラム」へ一歩進化させるための大切な技術です。

訪問数 25 回, 今日の訪問数 25回

広告

C#

Posted by hidepon