DataGridViewCell.ErrorText プロパティ

定義

セルに関連付けられたエラー条件を記述するテキストを取得または設定します。Gets or sets the text describing an error condition associated with the cell.

public:
 property System::String ^ ErrorText { System::String ^ get(); void set(System::String ^ value); };
[System.ComponentModel.Browsable(false)]
public string ErrorText { get; set; }
member this.ErrorText : string with get, set
Public Property ErrorText As String

プロパティ値

セルに関連付けられたエラー条件を記述するテキスト。The text that describes an error condition associated with the cell.

属性

次のコード例は、バインドされていない DataGridViewでエラー条件を処理するときに、このプロパティを使用する方法を示しています。The following code example demonstrates how to use this property when handling error conditions in an unbound DataGridView. AnnotateCell メソッドは、エラーメッセージ文字列を ErrorText プロパティに設定します。The AnnotateCell method sets an error message string to the ErrorText property.

void dataGridView1_CellValidating( Object^ /*sender*/, DataGridViewCellValidatingEventArgs^ newValue )
{
   DataGridViewColumn^ column = dataGridView1->Columns[ newValue->ColumnIndex ];
   if ( column->Name->Equals( "Track" ) )
   {
      CheckTrack( newValue );
   }
   else
   if ( column->Name->Equals( "Release Date" ) )
   {
      CheckDate( newValue );
   }
}

void CheckTrack( DataGridViewCellValidatingEventArgs^ newValue )
{
   Int32 ignored;
   if ( newValue->FormattedValue->ToString() == String::Empty )
   {
      NotifyUserAndForceRedo( "Please enter a track", newValue );
   }
   else
   if (  !Int32::TryParse( newValue->FormattedValue->ToString(), ignored ) )
   {
      NotifyUserAndForceRedo( "A Track must be a number", newValue );
   }
   else
   if ( Int32::Parse( newValue->FormattedValue->ToString() ) < 1 )
   {
      NotifyUserAndForceRedo( "Not a valid track", newValue );
      editedLastColumn = true;
   }
}

void NotifyUserAndForceRedo( String^ errorMessage, DataGridViewCellValidatingEventArgs^ newValue )
{
   MessageBox::Show( errorMessage );
   newValue->Cancel = true;
}

void CheckDate( DataGridViewCellValidatingEventArgs^ newValue )
{
   try
   {
      DateTime::Parse( newValue->FormattedValue->ToString() ).ToLongDateString();
      AnnotateCell( String::Empty, newValue );
   }
   catch ( FormatException^ /*ex*/ ) 
   {
      AnnotateCell( "You did not enter a valid date.", newValue );
   }
}

void AnnotateCell( String^ errorMessage, DataGridViewCellValidatingEventArgs^ editEvent )
{
   DataGridViewCell^ cell = dataGridView1->Rows[ editEvent->RowIndex ]->Cells[ editEvent->ColumnIndex ];
   cell->ErrorText = errorMessage;
}
private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{

    DataGridViewColumn column = dataGridView1.Columns[e.ColumnIndex];

    if (column.Name == "Track")
    {
        CheckTrack(e);
    }
    else if (column.Name == "Release Date")
    {
        CheckDate(e);
    }
}

private static void CheckTrack(DataGridViewCellValidatingEventArgs newValue)
{
    Int32 ignored = new Int32();
    if (String.IsNullOrEmpty(newValue.FormattedValue.ToString()))
    {
        NotifyUserAndForceRedo("Please enter a track", newValue);
    }
    else if (!Int32.TryParse(newValue.FormattedValue.ToString(), out ignored))
    {
        NotifyUserAndForceRedo("A Track must be a number", newValue);
    }
    else if (Int32.Parse(newValue.FormattedValue.ToString()) < 1)
    {
        NotifyUserAndForceRedo("Not a valid track", newValue);
    }
}

private static void NotifyUserAndForceRedo(string errorMessage, DataGridViewCellValidatingEventArgs newValue)
{
    MessageBox.Show(errorMessage);
    newValue.Cancel = true;
}

private void CheckDate(DataGridViewCellValidatingEventArgs newValue)
{
    try
    {
        DateTime.Parse(newValue.FormattedValue.ToString()).ToLongDateString();
        AnnotateCell(String.Empty, newValue);
    }
    catch (FormatException)
    {
        AnnotateCell("You did not enter a valid date.", newValue);
    }
}

private void AnnotateCell(string errorMessage, DataGridViewCellValidatingEventArgs editEvent)
{

    DataGridViewCell cell = dataGridView1.Rows[editEvent.RowIndex].Cells[editEvent.ColumnIndex];
    cell.ErrorText = errorMessage;
}
Private Sub dataGridView1_CellValidating(ByVal sender As Object, _
    ByVal e As _
    DataGridViewCellValidatingEventArgs) _
    Handles dataGridView1.CellValidating

    Dim column As DataGridViewColumn = _
        dataGridView1.Columns(e.ColumnIndex)

    If column.Name = "Track" Then
        CheckTrack(e)
    ElseIf column.Name = "Release Date" Then
        CheckDate(e)
    End If
End Sub

Private Shared Sub CheckTrack(ByVal newValue As DataGridViewCellValidatingEventArgs)
    If String.IsNullOrEmpty(newValue.FormattedValue.ToString()) Then
        NotifyUserAndForceRedo("Please enter a track", newValue)
    ElseIf Not Integer.TryParse( _
        newValue.FormattedValue.ToString(), New Integer()) Then
        NotifyUserAndForceRedo("A Track must be a number", newValue)
    ElseIf Integer.Parse(newValue.FormattedValue.ToString()) < 1 Then
        NotifyUserAndForceRedo("Not a valid track", newValue)
    End If
End Sub

Private Shared Sub NotifyUserAndForceRedo(ByVal errorMessage As String, ByVal newValue As DataGridViewCellValidatingEventArgs)
    MessageBox.Show(errorMessage)
    newValue.Cancel = True
End Sub

Private Sub CheckDate(ByVal newValue As DataGridViewCellValidatingEventArgs)
    Try
        DateTime.Parse(newValue.FormattedValue.ToString()).ToLongDateString()
        AnnotateCell(String.Empty, newValue)
    Catch ex As FormatException
        AnnotateCell("You did not enter a valid date.", newValue)
    End Try
End Sub

Private Sub AnnotateCell(ByVal errorMessage As String, _
    ByVal editEvent As DataGridViewCellValidatingEventArgs)

    Dim cell As DataGridViewCell = _
        dataGridView1.Rows(editEvent.RowIndex).Cells( _
            editEvent.ColumnIndex)
    cell.ErrorText = errorMessage
End Sub

注釈

通常、ErrorText プロパティは、DataGridViewCellValidating イベントを処理するときに使用されます。Typically, the ErrorText property is used when handling the CellValidating event of the DataGridView. セルの値が一部の検証条件に失敗した場合は、ErrorText プロパティを設定し、DataGridViewCellValidatingEventArgsCancel プロパティを trueに設定して、コミット操作をキャンセルします。If the cell's value fails some validation criteria, set the ErrorText property and cancel the commit operation by setting the Cancel property of the DataGridViewCellValidatingEventArgs to true. 指定したテキストが DataGridViewによって表示され、ユーザーはセルのデータでエラーを修正するように求められます。The text you specify is then displayed by the DataGridView, and the user is prompted to fix the error in the cell's data.

DataGridViewVirtualMode プロパティが true場合は、RowErrorTextNeeded イベントと CellErrorTextNeeded イベントを使用して、行およびセルのエラーテキストを指定できます。When the VirtualMode property of the DataGridView is true, you can provide error text for rows and cells using the RowErrorTextNeeded and CellErrorTextNeeded events.

セルに別の ErrorText 文字列を割り当てると、DataGridView コントロールの CellErrorTextChanged イベントが発生します。When you assign a different ErrorText string to a cell, the CellErrorTextChanged event of the DataGridView control is raised.

.NET Framework 4.5.2 以降では、app.config ファイルに次のエントリが含まれている場合、エラーアイコンのサイズ変更はシステムの DPI 設定によって決定されます。Starting with the .NET Framework 4.5.2, resizing of the error icon is determined by the system DPI setting when the app.config file contains the following entry:

<appSettings>  
  <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />  
</appSettings>  

適用対象

こちらもご覧ください