BindingSource.AddNew 方法

定义

在基础列表中添加一个新项。

public:
 virtual System::Object ^ AddNew();
public virtual object AddNew ();
public virtual object? AddNew ();
abstract member AddNew : unit -> obj
override this.AddNew : unit -> obj
Public Overridable Function AddNew () As Object

返回

已创建并已添加至列表的 Object

实现

例外

AllowNew 属性设置为 false

- 或 -

未能找到当前项目类型的公共无参数构造函数。

示例

下面的代码示例使用 组件 BindingSource 将列表绑定到控件 DataGridView 。 事件处理程序将新项添加到列表中 AddingNew 。 此代码示例是 How to: Customize Item Addition with the Windows 窗体 BindingSource 中提供的更大示例的一部分。

private:
   
    void OnMainFormLoad(Object^ sender, EventArgs^ e)
    {
        // Add a DemoCustomer to cause a row to be displayed.
        this->customersBindingSource->AddNew();
          
        // Bind the BindingSource to the DataGridView 
        // control's DataSource.
        this->customersDataGridView->DataSource = 
            this->customersBindingSource;
    }
private void Form1_Load(System.Object sender, System.EventArgs e)
{
    // Add a DemoCustomer to cause a row to be displayed.
    this.customersBindingSource.AddNew();

    // Bind the BindingSource to the DataGridView 
    // control's DataSource.
    this.customersDataGridView.DataSource = 
        this.customersBindingSource;
}
Private Sub Form1_Load( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs)

    ' Add a DemoCustomer to cause a row to be displayed.
    Me.customersBindingSource.AddNew()

    ' Bind the BindingSource to the DataGridView 
    ' control's DataSource.
    Me.customersDataGridView.DataSource = Me.customersBindingSource

End Sub

注解

方法 AddNew 将新项添加到由 List 属性表示的基础列表中。 此方法设置以下一系列操作:

  1. EndEdit将自动调用 方法以提交任何挂起的编辑操作。

  2. 事件 AddingNew 会自动引发。 可以通过编程方式处理此事件以构造新项。 这是在事件处理程序中通过将 参数的 System.ComponentModel.AddingNewEventArgs 属性设置为NewObject新项来实现的。 在 事件中创建 AddingNew 的新对象的类型必须与列表中包含的类型相同,否则会发生异常。

    AddingNew如果未处理事件,并且基础列表为 ,IBindingList则将请求传递到列表的 IBindingList.AddNew 方法。 如果基础列表不是 IBindingList,则通过该项的公共无参数构造函数自动创建该项。 在任一情况下,新项都添加到列表的末尾。

  3. 除非数据源实现 IEditableObject 接口,否则新项将立即添加到内部列表。 在这种情况下,在显式调用 ICancelAddNew.EndNew 之前或启动新的列表操作之前,不会提交新项。 在提交新项之前,可以通过调用 CancelEdit来回滚新项,在这种情况下,新项将被丢弃。

此方法引发 ListChanged 事件。

适用于

另请参阅