DataGridViewDataErrorEventHandler DataGridViewDataErrorEventHandler DataGridViewDataErrorEventHandler DataGridViewDataErrorEventHandler Delegate

定义

表示将用来处理 DataErrorDataGridView 事件的方法。Represents the method that will handle the DataError event of a DataGridView.

public delegate void DataGridViewDataErrorEventHandler(System::Object ^ sender, DataGridViewDataErrorEventArgs ^ e);
public delegate void DataGridViewDataErrorEventHandler(object sender, DataGridViewDataErrorEventArgs e);
type DataGridViewDataErrorEventHandler = delegate of obj * DataGridViewDataErrorEventArgs -> unit
Public Delegate Sub DataGridViewDataErrorEventHandler(sender As Object, e As DataGridViewDataErrorEventArgs)

参数

sender
Object Object Object Object

事件源。The source of the event.

继承
DataGridViewDataErrorEventHandlerDataGridViewDataErrorEventHandlerDataGridViewDataErrorEventHandlerDataGridViewDataErrorEventHandler

示例

下面的代码示例演示如何使用DataGridViewDataErrorEventHandler在消息框中显示有关的DataError信息。The following code example demonstrates how to use a DataGridViewDataErrorEventHandler to display information about a DataError in a message box. 此代码是DataGridViewComboBoxColumn类概述主题中提供的一个更大示例的一部分。This code is part of a larger example provided in the DataGridViewComboBoxColumn class overview topic.

private:
    void DataGridView1_DataError(Object^ sender, DataGridViewDataErrorEventArgs^ anError)
    {

        MessageBox::Show("Error happened " + anError->Context.ToString());

        if (anError->Context == DataGridViewDataErrorContexts::Commit)
        {
            MessageBox::Show("Commit error");
        }
        if (anError->Context == DataGridViewDataErrorContexts::CurrentCellChange)
        {
            MessageBox::Show("Cell change");
        }
        if (anError->Context == DataGridViewDataErrorContexts::Parsing)
        {
            MessageBox::Show("parsing error");
        }
        if (anError->Context == DataGridViewDataErrorContexts::LeaveControl)
        {
            MessageBox::Show("leave control error");
        }

        if (dynamic_cast<ConstraintException^>(anError->Exception) != nullptr)
        {
            DataGridView^ view = (DataGridView^)sender;
            view->Rows[anError->RowIndex]->ErrorText = "an error";
            view->Rows[anError->RowIndex]->Cells[anError->ColumnIndex]->ErrorText = "an error";

            anError->ThrowException = false;
        }
    }
private void DataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs anError)
{

    MessageBox.Show("Error happened " + anError.Context.ToString());

    if (anError.Context == DataGridViewDataErrorContexts.Commit)
    {
        MessageBox.Show("Commit error");
    }
    if (anError.Context == DataGridViewDataErrorContexts.CurrentCellChange)
    {
        MessageBox.Show("Cell change");
    }
    if (anError.Context == DataGridViewDataErrorContexts.Parsing)
    {
        MessageBox.Show("parsing error");
    }
    if (anError.Context == DataGridViewDataErrorContexts.LeaveControl)
    {
        MessageBox.Show("leave control error");
    }

    if ((anError.Exception) is ConstraintException)
    {
        DataGridView view = (DataGridView)sender;
        view.Rows[anError.RowIndex].ErrorText = "an error";
        view.Rows[anError.RowIndex].Cells[anError.ColumnIndex].ErrorText = "an error";

        anError.ThrowException = false;
    }
}
Private Sub DataGridView1_DataError(ByVal sender As Object, _
ByVal e As DataGridViewDataErrorEventArgs) _
Handles DataGridView1.DataError

    MessageBox.Show("Error happened " _
        & e.Context.ToString())

    If (e.Context = DataGridViewDataErrorContexts.Commit) _
        Then
        MessageBox.Show("Commit error")
    End If
    If (e.Context = DataGridViewDataErrorContexts _
        .CurrentCellChange) Then
        MessageBox.Show("Cell change")
    End If
    If (e.Context = DataGridViewDataErrorContexts.Parsing) _
        Then
        MessageBox.Show("parsing error")
    End If
    If (e.Context = _
        DataGridViewDataErrorContexts.LeaveControl) Then
        MessageBox.Show("leave control error")
    End If

    If (TypeOf (e.Exception) Is ConstraintException) Then
        Dim view As DataGridView = CType(sender, DataGridView)
        view.Rows(e.RowIndex).ErrorText = "an error"
        view.Rows(e.RowIndex).Cells(e.ColumnIndex) _
            .ErrorText = "an error"

        e.ThrowException = False
    End If
End Sub

注解

在数据绑定DataGridView过程中发生错误时 (例如, 当格式或分析操作引发异常或数据源更新失败) 时, 将引发事件。DataErrorThe DataError event is raised when an error occurs during a data processing operation in a data-bound DataGridView (for example, when a format or parse operation throws an exception or the update of the data source fails).

创建 DataGridViewDataErrorEventHandler 委托时,需要标识将处理该事件的方法。When you create a DataGridViewDataErrorEventHandler delegate, you identify the method that will handle the event. 若要将事件与事件处理程序关联,请将该委托的一个实例添加到事件中。To associate the event with your event handler, add an instance of the delegate to the event. 除非移除了该委托,否则每当发生该事件时就会调用事件处理程序。The event handler is called whenever the event occurs, unless you remove the delegate. 有关事件处理程序委托的详细信息, 请参阅处理和引发事件For more information about event-handler delegates, see Handling and Raising Events.

扩展方法

GetMethodInfo(Delegate) GetMethodInfo(Delegate) GetMethodInfo(Delegate) GetMethodInfo(Delegate)

获取指示指定委托表示的方法的对象。Gets an object that represents the method represented by the specified delegate.

适用于

另请参阅