您将使用哪个事件处理程序来捕获绑定组合框中项目的更改

时间:2014-11-01 20:10:41

标签: keyboard-events

我有一个绑定的组合框,其中包含客户名称列表。我尝试了在更改组合框中的名称时触发的key_down。我想要的是将触发的事件处理程序,因为该名称正在更改(如拼写),不一定是列表中的其他名称。我想我需要编写一段代码来测试拼写的变化。是否有一个事件处理程序可以完成这项工作?

我在Windows窗体和SQL Server 2008上使用C#在Visual Studio中工作

public Customer_Info_Form()
        {
            InitializeComponent();

            button_Add_Customer.Visible = true;
            button_Add_Location.Visible = true;
            button_Save_Customer.Visible = false;
            button_Cancel_Customer_Add.Visible = false;
        }

private void Customer_Info_Form_Load(object sender, EventArgs e)
        {
            try
            {
                this.customerTableAdapter.Fill(this.customer_Info_DataSet.Customer);
                this.customer_ShipTableAdapter.Fill(this.customer_Info_DataSet.Customer_Ship);
                this.termsTableAdapter.Fill(this.terms_DataSet.Terms);
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }
        }

private void text_Changed(object sender, EventArgs e)
        {
            button_Add_Customer.Visible = false;
            button_Add_Location.Visible = false;
            button_Save_Customer.Visible = true;
            button_Cancel_Customer_Add.Visible = true;
        }

“text_Changed”事件在表单加载时触发。它不应该在文本实际更改之前触发。我选择“取消”,按钮被重置,一旦我选择了不同的客户名称,事件就会再次触发。我实际上没有改变任何文字。如何在实际更改文本之前保持“text_Changed”事件不被触发?

2 个答案:

答案 0 :(得分:1)

您可以使用TextChanged事件

只要ComboBox的值发生变化,就会触发它。

答案 1 :(得分:0)

当我尝试TextChanged事件时,一旦表单加载就会触发,当我在绑定的组合框中选择一个不同的名字时,它也会触发,而不是当文本实际发生变化时。

为了捕获对组合框中任何所选项目的文本的更改,我使用了KeyDown事件来捕获对表单上的名称或任何控件的更改。