0

我在 Textbox Validated 事件上编写了以下代码:

 private void txtHbhakt1_Validated(object sender, EventArgs e)
        {

              //MessageBox.Show("Validated");
            txtHbhakt1.AutoCompleteCustomSource.Add("abcd");
            txtHbhakt1.AutoCompleteCustomSource.Add("abcd1");
            txtHbhakt1.AutoCompleteCustomSource.Add("abcd2");
            txtHbhakt1.AutoCompleteCustomSource.Add("abcd3");           

        }

我运行应用程序并在文本框上按 TAB 键.. 它什么也没发生.. 为什么?每当我在文本框 TAB 键的 Validated 或 Leave 事件上使用 autocompleteCustomSource 时都不起作用.. 解决方案是什么?

谢谢..

4

1 回答 1

1

当您在验证事件期间更新自定义源时,Tab 键操作似乎会出现冲突的顺序。

一个简单的解决方法是在事件过去后添加源。使用BeginInvoke似乎可以解决问题:

void txtHbhakt1_Validated(object sender, EventArgs e) {
  BeginInvoke(new Action(() => txtHbhakt1.AutoCompleteCustomSource.Add("abcd")));
  BeginInvoke(new Action(() => txtHbhakt1.AutoCompleteCustomSource.Add("abcd1")));
  BeginInvoke(new Action(() => txtHbhakt1.AutoCompleteCustomSource.Add("abcd2")));
  BeginInvoke(new Action(() => txtHbhakt1.AutoCompleteCustomSource.Add("abcd3")));
}
于 2012-07-31T14:49:47.463 回答