DataGridViewCell.ErrorText Propriété

Définition

Obtient ou définit le texte qui décrit une condition d'erreur associée à la cellule.

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

Valeur de propriété

Texte qui décrit une condition d'erreur associée à la cellule.

Attributs

Exemples

L’exemple de code suivant montre comment utiliser cette propriété lors de la gestion des conditions d’erreur dans un objet indépendant DataGridView. La AnnotateCell méthode définit une chaîne de message d’erreur sur la ErrorText propriété .

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

Remarques

En règle générale, la ErrorText propriété est utilisée lors de la gestion de l’événement CellValidating de .DataGridView Si la valeur de la cellule échoue à certains critères de validation, définissez la ErrorText propriété et annulez l’opération de validation en définissant la Cancel propriété du sur DataGridViewCellValidatingEventArgstrue. Le texte que vous spécifiez est ensuite affiché par le DataGridView, et l’utilisateur est invité à corriger l’erreur dans les données de la cellule.

Lorsque la VirtualMode propriété de a la valeur true, vous pouvez fournir le DataGridView texte d’erreur pour les lignes et les cellules à l’aide des RowErrorTextNeeded événements et CellErrorTextNeeded .

Lorsque vous affectez une chaîne différente ErrorText à une cellule, l’événement CellErrorTextChanged du DataGridView contrôle est déclenché.

À compter de .NET Framework 4.5.2, le redimensionnement de l’icône d’erreur est déterminé par le paramètre ppp système lorsque le fichier app.config contient l’entrée suivante :

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

S’applique à

Voir aussi