BeforeAddDataBoundRowEventHandler Delegate (2007 System)

Represents the method that will handle the BeforeAddDataBoundRow event of a ListObject.

Namespace:  Microsoft.Office.Tools.Excel
Assembly:  Microsoft.Office.Tools.Excel.v9.0 (in Microsoft.Office.Tools.Excel.v9.0.dll)


Public Delegate Sub BeforeAddDataBoundRowEventHandler ( _
    sender As Object, _
    e As BeforeAddDataBoundRowEventArgs _
Dim instance As New BeforeAddDataBoundRowEventHandler(AddressOf HandlerMethod)
public delegate void BeforeAddDataBoundRowEventHandler(
    Object sender,
    BeforeAddDataBoundRowEventArgs e
public delegate void BeforeAddDataBoundRowEventHandler(
    Object^ sender, 
    BeforeAddDataBoundRowEventArgs^ e
JScript does not support delegates.



When you create a BeforeAddDataBoundRowEventHandler 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, until you remove the delegate. For more information about delegates, see Events and Delegates.


The following code example creates a DataTable and a ListObject, and binds the ListObject to the DataTable. It then creates a BeforeAddDataBoundRow event handler that cancels the addition of the new row. To test the event, manually add a new row to the ListObject on sheet 1.

This example is for a document-level customization.

WithEvents BeforeAddDataBoundRowList As _
Private Sub ListObject_BeforeAddDataBoundRow()
    ' Create a new DataSet and DataTable. 
    Dim ds As New DataSet()
    Dim dt As DataTable = ds.Tables.Add("Customers")
    dt.Columns.Add(New DataColumn("LastName"))
    dt.Columns.Add(New DataColumn("FirstName"))

    ' Add a new row to the DataTable. 
    Dim dr As DataRow = dt.NewRow()
    dr("LastName") = "Chan"
    dr("FirstName") = "Gareth"

    ' Create a list object.
    BeforeAddDataBoundRowList = _
        Me.Controls.AddListObject(Me.Range("A1"), _

    ' Bind the list object to the DataTable.
    BeforeAddDataBoundRowList.AutoSetDataBoundColumnHeaders = True
    BeforeAddDataBoundRowList.SetDataBinding(ds, "Customers", _
        "LastName", "FirstName")
End Sub 

Private Sub List1_BeforeAddDataBoundRow(ByVal sender As Object, _
    ByVal e As Microsoft.Office.Tools.Excel.BeforeAddDataBoundRowEventArgs) _
    Handles BeforeAddDataBoundRowList.BeforeAddDataBoundRow
    e.Cancel = True
    MessageBox.Show("This data is read-only.")

End Sub
private void ListObject_BeforeAddDataBoundRow()
    // Create a new DataSet and DataTable.
    DataSet ds = new DataSet();
    DataTable dt = ds.Tables.Add("Customers");
    dt.Columns.Add(new DataColumn("LastName"));
    dt.Columns.Add(new DataColumn("FirstName"));

    // Add a new row to the DataTable.
    DataRow dr = dt.NewRow();
    dr["LastName"] = "Chan";
    dr["FirstName"] = "Gareth";

    // Create a list object.
    Microsoft.Office.Tools.Excel.ListObject list1 = 
        this.Range["A1", missing], "list1");

    // Bind the list object to the DataTable.
    list1.AutoSetDataBoundColumnHeaders = true;
    list1.SetDataBinding(ds, "Customers", "LastName",

    // Create the event handler.
    list1.BeforeAddDataBoundRow += new 

void list1_BeforeAddDataBoundRow(object sender, 
    Microsoft.Office.Tools.Excel.BeforeAddDataBoundRowEventArgs e)
    e.Cancel = true;
    MessageBox.Show("This data is read-only.");

See Also


Microsoft.Office.Tools.Excel Namespace