具有所选值和自动完成功能的组合框

时间:2012-07-17 22:14:54

标签: c# winforms autocomplete combobox selectedvalue

产品有1个datagridview,类别有1个组合框,我已将组合框选择值设置为CategoryID。

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

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

2 个答案:

答案 0 :(得分:1)

这样,可以通过调用FillGrid()

从任何来源填充gridview
    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
   }

答案 1 :(得分:0)

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

    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中单击“保存”按钮后,更改将持久保存到数据库中。