【C#】入力エラー箇所をユーザに通知する(ErrorProvider)

C#

ユーザに入力を求める場合、エラー発生箇所を分かりやすく表示するのはユーザビリティの観点で重要です。この記事では、フォーム上のエラー発生コントロール付近にエラーマークを表示し、ユーザに対しエラー発生個所を明示する処理のサンプルを紹介します。

準備

以下をフォームに配置する。
テキストボックスをひとつ:名前は textBox1
ボタンをひとつ:名前は button1

サンプルコード

ボタン押下時にテキストボックスの内容を確認。文字が入力されていない場合をエラーと判定し、テキストボックス横に「!」マークを表示する。マークにマウスポインタを合わせるとエラー内容が表示されます。

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        // ErrorProviderのインスタンスを作成
        private ErrorProvider m_ErrorProvider = new ErrorProvider();

        public Form1()
        {
            InitializeComponent();
        }

        // ボタンクリック時のイベントハンドラ
        private void button1_Click(object sender, EventArgs e)
        {
            TextBox textBox1 = this.Controls["textBox1"] as TextBox;
            if (string.IsNullOrWhiteSpace(textBox1.Text))
            {
                // エラーメッセージを表示
                m_ErrorProvider.SetError(textBox1, "テキストボックスは空にできません。");
            }
            else
            {
                // エラーをクリア
                m_ErrorProvider.SetError(textBox1, "");
            }
        }

    }
}
タイトルとURLをコピーしました