DataGridViewCell.ErrorText Eigenschaft

Definition

Ruft den Text ab, mit dem ein der Zelle zugeordneter Fehlerzustand beschrieben wird, oder legt diesen Text fest.

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

Eigenschaftswert

Der Text, mit dem ein der Zelle zugeordneter Fehlerzustand beschrieben wird.

Attribute

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie diese Eigenschaft bei der Behandlung von Fehlerbedingungen in einem ungebundenen DataGridViewverwendet wird. Die AnnotateCell -Methode legt eine Fehlermeldungszeichenfolge auf die ErrorText -Eigenschaft fest.

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

Hinweise

In der Regel wird die ErrorText -Eigenschaft verwendet, wenn das CellValidating -Ereignis von DataGridViewbehandelt wird. Wenn für den Wert der Zelle einige Validierungskriterien fehlschlagen, legen Sie die ErrorText -Eigenschaft fest, und brechen Sie den Commitvorgang ab, indem Sie die Cancel -Eigenschaft von DataGridViewCellValidatingEventArgs auf truefestlegen. Der von Ihnen angegebene Text wird dann von DataGridViewangezeigt, und der Benutzer wird aufgefordert, den Fehler in den Daten der Zelle zu beheben.

Wenn die VirtualMode -Eigenschaft von DataGridView ist true, können Sie Fehlertext für Zeilen und Zellen mithilfe der RowErrorTextNeeded Ereignisse und CellErrorTextNeeded angeben.

Wenn Sie einer Zelle eine andere ErrorText Zeichenfolge zuweisen, wird das CellErrorTextChanged -Ereignis des DataGridView Steuerelements ausgelöst.

Ab dem .NET Framework 4.5.2 wird die Größenänderung des Fehlersymbols durch die Dpi-Einstellung des Systems bestimmt, wenn die datei app.config den folgenden Eintrag enthält:

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

Gilt für:

Weitere Informationen