AutoCompleteSource останавливает событие KeyPress? - PullRequest
1 голос
/ 10 августа 2010

Простой код C # winform app (visual studio 2010):

Простая форма с одним текстовым полем - это событие keyPress:

 private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            // The keypressed method uses the KeyChar property to check 
            // whether the ENTER key is pressed. 


            if (e.KeyChar == (char)Keys.Return)
            {
                Process.Start("http://yahoo.com", null);
            }

        }

Работает нормально, если я набираю какой-то текств текстовом поле и нажмите Enter, он открывает мой веб-браузер по умолчанию и переводит меня на сайт.

Мне нужно изменить текстовое поле на autocompletemode = Suggestappend и autocompletesource = customsource.И затем я заполняю его следующим образом:

  private void Form1_Load(object sender, EventArgs e)
        {
            AutoCompleteStringCollection s = new AutoCompleteStringCollection();
            s.Add("Jon ");
            s.Add("2 Jon");
            textBox1.AutoCompleteCustomSource = s;
        }

Он выполняет автозаполнение как правильно, когда я набираю J, он подходит к Джону, но теперь, когда я нажимаю enter, он не запускает событие KeyPress.Он просто сидит там.Я попытался установить точку останова, и когда я набираю первую букву J, запускается событие KeyPress.Затем, когда я выбираю строку «Jon» из источника автозаполнения, а затем нажимаю «Ввод», событие больше не запускается.

Confused:).

1 Ответ

2 голосов
/ 11 августа 2010

Казалось бы, нажатие клавиши Return обрабатывается из-за выпадающего списка автозаполнения предложения - вы всегда можете использовать событие KeyDown , которое все еще срабатывает в этом сценарии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...