WP7 Клавиша ввода отправляет текст из текстового поля в текстовый блок - PullRequest
3 голосов
/ 08 августа 2010

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

При поиске здесь я нашел следующий код, но он не выглядитсделать что-нибудь.

private void textBox_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Enter)
        {
            listBox.Items.Add(textBox.Text);
        }
    }

Итак, текстовое поле со строкой называется текстовое поле, и я хочу, чтобы текст из этого текстового поля был добавлен в мой список (listBox).Когда я нажимаю кнопку ввода, это ничего не делает.Любая помощь?

Спасибо!

Ответы [ 4 ]

6 голосов
/ 09 августа 2010

Вы можете перехватить клавишу ввода с экранной клавиатуры, но не с клавиатуры компьютера, на котором запущен эмулятор.

Вот код, который доказывает, что он работает:

Создайте новое приложение для телефона. Добавьте следующее в сетку контента

<ListBox Height="276" HorizontalAlignment="Left" Margin="14,84,0,0" Name="listBox1" VerticalAlignment="Top" Width="460" />

Затем в коде добавьте следующее:

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter)
    {
        this.listBox1.Items.Add(textBox1.Text);
    }
}
1 голос
/ 08 августа 2010

Вам нужно подключить этот обработчик события к событию KeyDown текстовых полей, если вы этого еще не сделали. Вы можете сделать это на вкладке «События» в окне свойств, пока текстовое поле нацелено - или вы можете дважды щелкнуть там, и VS создаст для вас новый обработчик событий, в который вы можете поместить вышеуказанный код.

0 голосов
/ 23 февраля 2011

Похоже, вам нужно обработать событие KeyUp.

0 голосов
/ 09 августа 2010

@ Судите по ответу, который вы дали @Trees. Могу предположить, что вы не уверены, что KeyDown подключен.У вас есть следующий код в файле XAML?

<TextBox Height="32" HorizontalAlignment="Left" Margin="13,-2,0,0" Name="textBox1" Text="" VerticalAlignment="Top" Width="433" KeyDown="textBox1_KeyDown" />

@ Matt Lacey intercepting Enter с клавиатуры компьютера также работает

...