宇宙仮面の
C# Programming

 
DataGrid 3 (エラー表示)
Image

Data Grid 3(エラー表示)

開発環境: Visual Studio 2003 

1.Index

  1. Index
  2. Introduction
  3. References
  4. データグリッドのセルにエラーを表示する方法
  5. データグリッドの行にエラーを表示する方法

2.Introduction

データグリッドのValidation

3.References

  1. Windows フォームの ErrorProvider コンポーネントによる DataSet 内のエラーの表示

4.データグリッドのセルにエラーを表示する方法

次の図は、データグリッド上で、Mr., Ms., Dr. であるべきところに、abcと間違えて
入力した場合のエラー表示画面です。

これは、DataRow.SetColumnError()メソッドで、列を指定してエラーメッセージを
セットすることにより、自動的にErrorProviderと同様なエラーを表示してくれます。

Image

以下の例では、Northwind データベースの "Employees"テーブルをDataGridに表示した状態で、
Form1_Load で、RowChanged イベントに OnDataRowChangedイベントハンドラを追加し、
イベントハンドラで入力審査を行います。入力に間違いがある場合には、SetColumnError()で
エラーをセットするだけの、非常にシンプルな内容です。

Source Code
private void Form1_Load(object sender, System.EventArgs e)
{
	sqlDataAdapter1.Fill( dataSet11 );
	dataSet11.Tables["Employees"].RowChanged += new DataRowChangeEventHandler(OnDataRowChanged);
}

private void OnDataRowChanged(Object sender, DataRowChangeEventArgs e)
{
	string titleOfCourtesy = (string)e.Row["TitleOfCourtesy"];
	if( titleOfCourtesy != "Mr." ||
		titleOfCourtesy != "Ms." ||
		titleOfCourtesy != "Dr." )
	{
		e.Row.SetColumnError("TitleOfCourtesy", "Mr. or Ms. or Dr.");
	}
}

private void button1_Click(object sender, System.EventArgs e)
{
	foreach(DataRow row in dataSet11.Tables["Employees"].GetErrors())
	{
		Console.WriteLine(row.GetColumnError("TitleOfCourtesy"));
	}
}

 

5.データグリッドの行にエラーを表示する方法

同様に、OnDataRowChangedイベントハンドラで、e.Row.RowError にエラーの文字列を
セットすることにより、次のように行にエラーを表示することができます。

Image