イベント ハンドラが、このイベントに関連するデータを含む、ErrorEventArgs 型の引数を受け取りました。次の ErrorEventArgs プロパティには、このイベントの固有の情報が記載されます。
プロパティ | 解説 |
---|---|
Cancel System.ComponentModel.CancelEventArgsから継承されます。 | |
DataErrorInfo | データ エラーが原因でこのエラー イベントが発生した場合は、そのエラーに関連付けられた DataErrorInfo インスタンスを返します。そうでなければ、nullを返します。 |
ErrorText | エラーテキストを取得または設定します。これは、エラー ダイアログ ボックスに表示されるテキストです。このプロパティを修正して、エラーダイアログボックスに表示される内容を変更できます。エラー ダイアログ ボックスを表示しないようにするには、Cancel を True に設定します。 |
ErrorType | Errorイベントが発生したときのエラーの種類を返します。 |
MaskErrorInfo | マスクエラーが原因でこのエラーイベントが発生した場合は、そのエラーに関連付けられたMaskErrorInfoインスタンスを返します。そうでなければ、nullを返します。 |
MultiCellOperationErrorInfo | このオブジェクトは、マルチセル操作中に発生したエラーに関する情報を含みます。 |
errorinfo 引数は、プロパティを設定でき、このイベントで生成されたエラーでメソッドを呼び出す Error オブジェクトへの参照を返します。この参照を使用して、返されたエラーのプロパティまたはメソッドにアクセスすることができます。
errorinfo の Code および Description プロパティは、このイベントを生成したエラーの数と説明をそれぞれ決定するために使用できます。
エラーがデータソースに関係する場合、DataError プロパティが設定され、発生したことをさらに分析するために使用できます。
逆に、エラーが入力検証に関係する場合、MaskError プロパティが設定されます。コントロールは数字やアルファベットなどの文字の種類は入力検証できますが、正確な月や日時というような内容の有効性は検証できません。この場合、このイベントは生成されません。
このイベントは、更新が試みされたり、データソースが更新可能でないなどの予期しない状態にコントロールが遭遇した場合に生成できます。
Imports Infragistics.Shared Imports Infragistics.Win Imports Infragistics.Win.UltraWinGrid Imports System.Diagnostics Private Sub UltraGrid1_Error(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.ErrorEventArgs) Handles ultraGrid1.Error If e.ErrorType = ErrorType.Data Then ' DataErroInfo object contains details regarding the data error. ' ErrorText property contains the error message. Debug.WriteLine("Data Error: Error text = " & e.DataErrorInfo.ErrorText) ' Exception property will contain the exception that caused the Error event to fire. ' It will be null if there was no exception. If Not Nothing Is e.DataErrorInfo.Exception Then Debug.WriteLine("Data Error: Exception type = " & e.DataErrorInfo.Exception.GetType().Name) Else Debug.WriteLine("Data Error: No Exception.") End If ' Cell returns the cell involved in the data error. It will be null for errors generated ' when performing operations like adding or deleting rows or operations that do not ' deal with a cell. If Not Nothing Is e.DataErrorInfo.Cell Then Debug.WriteLine("DataError: Cell's column key = " & e.DataErrorInfo.Cell.Column.Key) Else Debug.WriteLine("DataError: No cell.") End If ' Row returns the row involved in the data error. It will be null if error occurred while ' doing an operation that did not involve a row. If Not Nothing Is e.DataErrorInfo.Row Then Debug.WriteLine("DataError: Index of the row involved = " & e.DataErrorInfo.Row.Index) Else Debug.WriteLine("DataError: No row.") End If ' Source property indicates how the data error was generated. Debug.Write("DataError: Source of the error is ") Select Case (e.DataErrorInfo.Source) Case DataErrorSource.CellUpdate If Nothing Is e.DataErrorInfo.InvalidValue Then Debug.WriteLine("Cell updating.") Else Debug.WriteLine("Cell updating with invalid value of " & e.DataErrorInfo.InvalidValue.ToString()) End If Case DataErrorSource.RowAdd Debug.WriteLine("Row adding.") Case DataErrorSource.RowDelete Debug.WriteLine("Row deleting.") Case DataErrorSource.RowUpdate Debug.WriteLine("Row updating.") Case DataErrorSource.Unspecified Debug.WriteLine("Unknown.") End Select ' Set the cancel to true to prevent the grid from displaying a message for ' this error. Instead we will display our own message box below. e.Cancel = True MessageBox.Show(Me, _ "Please enter a valid value for the cell." & vbCrLf & "Data error defatils:" & e.ErrorText, _ "Invalid input", _ MessageBoxButtons.OK, _ MessageBoxIcon.Error) ElseIf e.ErrorType = ErrorType.Mask Then ' MaskErroInfo property contains the detaisl regarding the mask error. ' InvalidText is the text in the cell that doesn't satisfy the mask input. Debug.WriteLine("Mask Error: Invalid text = " & e.MaskErrorInfo.InvalidText) ' StartPos may indicate the position in the text that caused the mask input ' verification failed. Debug.WriteLine("Mask Error: Character position = " & e.MaskErrorInfo.StartPos) ' Prevent the UltraGrid from beeping whenever the user types in a ' character that doesn't match the mask as well as for other mask ' related errors. e.MaskErrorInfo.CancelBeep = True Else ' Set the cancel to true to prevent the grid from displaying the message ' for this error. e.Cancel = True Debug.WriteLine("Unknown error occured with the error message of: " & e.ErrorText) End If End Sub
using Infragistics.Shared; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; using System.Diagnostics; private void ultraGrid1_Error(object sender, Infragistics.Win.UltraWinGrid.ErrorEventArgs e) { if ( e.ErrorType == ErrorType.Data ) { // DataErroInfo object contains details regarding the data error. // ErrorText property contains the error message. Debug.WriteLine( "Data Error: Error text = " + e.DataErrorInfo.ErrorText ); // Exception property will contain the exception that caused the Error event to fire. // It will be null if there was no exception. if ( null != e.DataErrorInfo.Exception ) Debug.WriteLine( "Data Error: Exception type = " + e.DataErrorInfo.Exception.GetType( ).Name ); else Debug.WriteLine( "Data Error: No Exception." ); // Cell returns the cell involved in the data error. It will be null for errors generated // when performing operations like adding or deleting rows or operations that do not // deal with a cell. if ( null != e.DataErrorInfo.Cell ) Debug.WriteLine( "DataError: Cell's column key = " + e.DataErrorInfo.Cell.Column.Key ); else Debug.WriteLine( "DataError: No cell." ); // Row returns the row involved in the data error. It will be null if error occurred while // doing an operation that did not involve a row. if ( null != e.DataErrorInfo.Row ) Debug.WriteLine( "DataError: Index of the row involved = " + e.DataErrorInfo.Row.Index ); else Debug.WriteLine( "DataError: No row." ); // Source property indicates how the data error was generated. Debug.Write( "DataError: Source of the error is " ); switch ( e.DataErrorInfo.Source ) { case DataErrorSource.CellUpdate: if ( null == e.DataErrorInfo.InvalidValue ) Debug.WriteLine( "Cell updating." ); else Debug.WriteLine( "Cell updating with invalid value of " + e.DataErrorInfo.InvalidValue.ToString( ) ); break; case DataErrorSource.RowAdd: Debug.WriteLine( "Row adding." ); break; case DataErrorSource.RowDelete: Debug.WriteLine( "Row deleting." ); break; case DataErrorSource.RowUpdate: Debug.WriteLine( "Row updating." ); break; case DataErrorSource.Unspecified: Debug.WriteLine( "Unknown." ); break; } // Set the cancel to true to prevent the grid from displaying a message for // this error. Instead we will display our own message box below. e.Cancel = true; MessageBox.Show( this, "Please enter a valid value for the cell.\nData error defatils:" + e.ErrorText, "Invalid input", MessageBoxButtons.OK, MessageBoxIcon.Error ); } else if ( e.ErrorType == ErrorType.Mask ) { // MaskErroInfo property contains the detaisl regarding the mask error. // InvalidText is the text in the cell that doesn't satisfy the mask input. Debug.WriteLine( "Mask Error: Invalid text = " + e.MaskErrorInfo.InvalidText ); // StartPos may indicate the position in the text that caused the mask input // verification failed. Debug.WriteLine( "Mask Error: Character position = " + e.MaskErrorInfo.StartPos ); // Prevent the UltraGrid from beeping whenever the user types in a // character that doesn't match the mask as well as for other mask // related errors. e.MaskErrorInfo.CancelBeep = true; } else { // Set the cancel to true to prevent the grid from displaying the message // for this error. e.Cancel = true; Debug.WriteLine( "Unknown error occured with the error message of: " + e.ErrorText ); } }