Когда я нажимаю клавишу Enter, событие KeyDown
для TextBox
не запускается, если для свойства установлено значение true. Как я могу определить, когда нажата клавиша Enter для TextBox
с AcceptsReturn
установлена в true
?Событие KeyDown не запущено для TextBox в UWP
ответ
Я попытался код ниже, и его работы для меня,
var textBox = new TextBox();
KeyEventHandler keyeventHandler = new KeyEventHandler(textBox_KeyDown);
textBox.AddHandler(TextBox.KeyDownEvent, keyeventHandler, true);
private void textBox_KeyDown(object sender, KeyEventArgs e)
{
*** now Enter Key gets fired eventhough when i set AcceptsReturn as True ***
}
в XAML:
<TextBox VerticalAlignment="Top" KeyDown="TextBox_KeyDown"/>
в коде позади:
private void TextBox_KeyDown(object sender, KeyRoutedEventArgs e)
{
Debug.WriteLine(e.Key);
}
от выхода, вы можете увидеть, что Enter опознан.
Извините, если я нажмите клавишу ввода, KeyDown событие не увольняют. Ручки TextBox При нажатии клавиши ввода. Если я не установил Accepts Returns для TextBox как истинный, событие Key down запускается, когда я нажимаю клавишу ввода. Но если я устанавливаю AcceptsReturn как true, то событие KeyDown не запускается –
Когда я нажимаю клавишу ввода, событие Key Down для текстового поля не запускается. Это происходит только тогда, когда я устанавливаю свойство Accepts Return для текстового поля как true.
Это происходит потому, что если AcceptsReturn
установлена истина, то TextBox
позволяет символы новой строки, поэтому при нажатии клавиши ввода ключа, он начнет новую строку, и событие KeyDown не будет уволен. Otherwiser, если для него установлено значение false (по умолчанию это значение false), когда вы нажимаете клавишу ввода, он делает это TextBox
в состоянии фокуса ввода, событие KeyDown может быть запущено.
Как определить, когда нажата клавиша Enter?
Я боюсь, что вы не можете использовать KeyDown событие, чтобы определить клавишу Enter в этом сценарии, но вы можете использовать TextBox.TextChanged event в код, чтобы получить уведомление, так как он будет начать новую строку при нажатии на клавишу ввода ,
Привет @Grace, Спасибо за ответ, но я нашел решение. Я использовал обработчик для этого сценария, и теперь его увольняют. –
- 1. Mvvm TextBox Событие KeyDown
- 2. Когда событие TextBox TextChanged запущено?
- 3. VB.NET Textbox KeyDown событие не розжиг
- 4. Как обрабатывать событие KeyDown в UWP ListBox?
- 5. Shift + F10 в TextBox Событие KeyDown
- 6. Установить JQuery автозаполнения на Textbox KeyDown событие
- 7. WPF: TextBox не вставляет текст в событие KeyDown (CTRL + V)
- 8. Событие KeyDown, отправленное в WPF TextBox, не вызывает ввод текста
- 9. Как обработать событие keydown keydown в viewmodel для удаления listItems?
- 10. TextChanged/KeyDown для ввода/TextBox
- 11. Textbox KeyDown событие не стрельбы, когда стрелка нажмите клавишу
- 12. ComboBox.SourceUpdated событие не запущено
- 13. Событие Keydown для Pygame
- 14. KeyDown событие не увольняют
- 15. Событие KeyDown не работает
- 16. Почему событие KeyDown не работает?
- 17. keydown событие не работает
- 18. Событие KeyDown для CKeditor
- 19. Событие KeyDown не срабатывает?
- 20. Нажатие клавиши табуляции в Silverlight TextBox Событие KeyDown
- 21. Javascript textbox keydown event
- 22. Событие KeyDown не поднимается из сетки
- 23. Событие DataGridView RowsAdded не запущено?
- 24. Событие KeyDown в форме
- 25. Получить имя TextBox отправителя в событии Keydown
- 26. Событие Linq OnValidate не запущено
- 27. Отключает KeyDown KeySuppress событие KeyUp?
- 28. Стр. Событие вообще не запущено
- 29. SqlTableDependency onchange событие не запущено
- 30. KeyDown событие Silverlight не работает
Похоже, что '.AddHandler' работает из-за [третьего параметра,' handledEventsToo'] (https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.uielement#Windows_UI_Xaml_UIElement_AddHandler_), из которого MSDN говорит: «* Не пытайтесь повторно обрабатывать маршрутизируемое событие, потому что оно мешает предполагаемому дизайну системы событий Windows Runtime для управления композицией. *« Другой недостаток: слишком поздно, чтобы отключить «Enter». Установка 'e.Handled = true;' здесь не останавливает ввод из TextBox. Но в остальном отличный ответ; это работает. – ruffin