LoginSignup
0
0

More than 3 years have passed since last update.

【KPI】C#の基本的な画面の作り方 - 05:登録ボタン押下イベントとメソッド作成 -【C#】

Posted at

今回は前回と同じように、登録ボタンの押下イベントを作成する。
と同時に、その中で使うメソッドの一部を作成する。

同じようにデザインの登録ボタンをダブルクリックして作成。
無題1.png
今回はtry-catch処理を入れておく。

まず、登録前に、項目の桁数をチェックしたい。
下記仕様を決める
[コード]:最大桁数6桁の場合のみ登録可能
[名称] :値が入っており、最大桁数20桁(全角1文字は2桁換算)を超えていなければ登録可能。
     ※現在、[名称]テキストボックスは最大で20文字が入る。理論上は全角20文字で40桁換算となる。

この処理を馬鹿正直に書く場合はかなりコードが長くなる。
さらに、これらのチェックは、項目ごとに似通っている。
よって、共通で使用できるメソッド[CheckLength]を作る。
無題2.png

C#
        private bool CheckLength(TextBox txt, string name, int len, bool maxOnly)
        {
            // 桁数取得(全角を2桁として扱う)
            int lenNow = Encoding.GetEncoding("Shift_JIS").GetByteCount(txt.Text);

            // 未入力の場合
            if (lenNow.Equals(0))
            {
                MessageBox.Show(name + "が入力されていません。");
                txt.Focus();
                return false;
            }

            // 最大桁数のみを受け付ける場合
            if (maxOnly && !lenNow.Equals(len))
            {
                MessageBox.Show(name + "の桁数が" + len + "桁ではありません。");
                txt.Focus();
                return false;
            }
            // 最大桁数を超える場合
            else if (lenNow > len)
            {
                MessageBox.Show(name + "の桁数が" + len + "桁を超えています。");
                txt.Focus();
                return false;
            }
            return true;
        }
  • txt :チェック対象のテキストボックス
  • name :項目名
  • len :最大桁数
  • maxOnly:trueの場合は最大桁数の場合のみチェックOKを返す

チェックがOKであれば、trueを、そうでなければfalseを返す。

このメソッドを使用して、登録ボタン押下イベントを作成する。
無題3.png

C#
        private void BtnUpd_Click(object sender, EventArgs e)
        {
            try
            {
                // チェック処理
                if (!CheckLength(this.TxtCode, this.LblCode.Text, this.TxtCode.MaxLength, true))
                {
                    return;
                }
                if (!CheckLength(this.TxtName, this.LblName.Text, 20, false))
                {
                    return;
                }
            }
            catch (Exception ex)
            {
                // エラーメッセージを表示
                MessageBox.Show(ex.Message);
            }
        }

これで、下記の各画面の状態で登録ボタンを押下した際、直近下側のメッセージが表示されるようになる。
無題4.png
無題5.png
無題5_5.png
無題6.png
無題7.png
無題8.png

これで事前チェックが完成する。
次回は更に作り込んでいく。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0