添加新行时dataGridview列中的默认值出现问题

时间:2011-09-21 08:29:18

标签: winforms c#-4.0 datagridview bindingsource

我有一个表单( form1 ),其中dataGridView列出了名为“订单”的表格中的客户订单。当在dataGridView中选择订单并按下EnterKey时,会弹出另一个表单( form2 )。这个弹出窗体2有另一个dataGridView,它支持在用户输入与所选订单相关的新记录的行中添加一行名为“ OrderDetails ”的表,该表有一个名为OrderNumber的foreigh键列,它引用OrderNumber列在“订单”表中。

问题:

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

datagridview绑定到bidningSource。

2 个答案:

答案 0 :(得分:3)

让它以我想要的方式工作

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

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

}

答案 1 :(得分:2)

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

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