ユーザに入力を求める場合、エラー発生箇所を分かりやすく表示するのはユーザビリティの観点で重要です。この記事では、フォーム上のエラー発生コントロール付近にエラーマークを表示し、ユーザに対しエラー発生個所を明示する処理のサンプルを紹介します。
準備
以下をフォームに配置する。
テキストボックスをひとつ:名前は 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, "");
}
}
}
}
まとめ
本記事では、入力エラー箇所をユーザに通知するErrorProviderの使い方を紹介しました。