0

有 1 个用于产品的数据网格视图和 1 个用于类别的组合框,我已将组合框选定值设置为 CategoryID。

当我在组合框中键入类别名称的第一个字母并按 Enter 时,名称在组合框内完成,但 datagridview 中的相关字段在我单击组合外部之前不会改变。

请问有没有办法让按Enter键在datagridview中执行更改,这样我就可以直接在保存按钮单击时保存修改。

4

2 回答 2

1

这样,gridview 可以通过调用从任何来源填充FillGrid()

    private void FilterComboBox_SelectedIndexChanged(object sender, EventArgs e)
    {
        string selText = FilterComboBox.SelectedValue.ToString();         
        FillGrid(selText);
    }

   private void FillGrid(string filterValue = "0")
   {
        //GetDefaultValues(if filtervalue = 0)
        //else GetValues(based On Selected category)
        //Bind Values to Grid
   }
于 2012-07-18T00:03:55.447 回答
0

我可以在组合自动完成上按“Enter”键同时更新 Product bindingsource 中的 categoryID,方法是使用下一个事件:cboCategories_ SelectedValueChanged,如下所示:

    private void cboCategories_SelectedValueChanged(object sender, EventArgs e)
{
    int val = Convert.ToInt32(cboCategories.SelectedValue);
    ModifGrid(val);
}
private void ModifGrid(int ModifiedValue)
{
    if (Convert.ToInt32(productBindingSource.Count)>0)
    {
        ((Product)productBindingSource.Current).CategoryID = ModifiedValue;
    }
}

单击 bindingsourceNavigator 中的保存按钮后,更改将持久保存到数据库中。

于 2012-07-18T11:41:54.353 回答