Winforms 添加新行时dataGridview列中的默认值有问题

Winforms 添加新行时dataGridview列中的默认值有问题,winforms,c#-4.0,datagridview,bindingsource,Winforms,C# 4.0,Datagridview,Bindingsource,我有一个表单(form1),其中有一个dataGridView,列出了名为“orders”表中的客户订单。在dataGridView中选择订单并按下Enter键时,会弹出另一个表单(form2)。此弹出式表单2有另一个dataGridView,支持添加行,其中用户将与所选订单相关的新记录输入名为“OrderDetails”的表中,该表具有名为OrderNumber的外键列,该列引用表“Orders”中的OrderNumber列 问题: 当用户从form2上的dataGridView向orderD

我有一个表单(form1),其中有一个dataGridView,列出了名为“orders”表中的客户订单。在dataGridView中选择订单并按下Enter键时,会弹出另一个表单(form2)。此弹出式表单2有另一个dataGridView,支持添加行,其中用户将与所选订单相关的新记录输入名为“OrderDetails”的表中,该表具有名为OrderNumber的外键列,该列引用表“Orders”中的OrderNumber列

问题:

当用户从form2上的dataGridView向orderDetails表输入新记录时,我希望OrderNumber列自动填充。它的值应该是form1上所选记录的订单号值,这样用户就不必手动键入它,因为它已经知道了。救命啊


datagridview绑定到BidingSource

BindingSource上有一个名为“AddingNew”的事件,您可以捕获该事件。在这里,您可以指定新对象及其属性。像这样:

private void BindingSource_AddingNew(object sender, System.ComponentModel.AddingNewEventArgs e)
{
    OrderDetailLIne odl = new OrderDetailLIne();
    odl.OrderNumber = _orderNumber;
    e.NewObject = odl;
}

BindingSource上有一个名为“AddingNew”的事件可以捕获。在这里,您可以指定新对象及其属性。像这样:

private void BindingSource_AddingNew(object sender, System.ComponentModel.AddingNewEventArgs e)
{
    OrderDetailLIne odl = new OrderDetailLIne();
    odl.OrderNumber = _orderNumber;
    e.NewObject = odl;
}

只是让它按照我想要的方式工作

private void dataGridView1_DefaultValuesNeeded(object sender,
    System.Windows.Forms.DataGridViewRowEventArgs e)
{

  e.Row.Cells["CustomerNumber"].Value = myOrderNumberValue;

}

只是让它按照我想要的方式工作

private void dataGridView1_DefaultValuesNeeded(object sender,
    System.Windows.Forms.DataGridViewRowEventArgs e)
{

  e.Row.Cells["CustomerNumber"].Value = myOrderNumberValue;

}