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キーを押します。何も起こりません。なぜですか。テキストボックスの「検証済み」または「Leave」イベントでautocompleteCustomSourceを使用すると、TABキーが機能しなくなります。解決策は何ですか。

ありがとう..

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 に答える