Существует пользовательский UserControl, который содержит TextBox
. Как указать фокус на текстовое поле при показе UserControl? Я пробовал позвонить TextBox.Focus
по телефону UserControl.IsVisibleChanged
и TextBox.IsVisibleChanged
, но это не помогло. Что еще я могу попробовать?дать фокус текстовому полю при отображении элемента управления
Похоже, что что-то заставляет TextBox
потерять фокус. Подход, о котором я говорил, обычно работает. Как я могу узнать, что заставляет TextBox
потерять фокус? Я пробовал слушать событие TextBox.LostFocus
, но его параметры не содержат много полезной информации, и я также не вижу предыдущих методов в трассировке стека.
Код:
void TextBox1_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if (this.TextBox1.IsVisible)
this.TextBox1.Focus();
}
Как я уже говорил раньше, это работает, если я использую тот же код на подобного сценария в тестовом проекте, но он не работает в моем приложении (приложение большой, и я в основном исправляю ошибки в нем, и это один из них). Поэтому я думаю, что проблема заключается не в том, что фокус установлен неправильно (как я думал, когда я открывал этот вопрос), я думаю, что проблема в том, что что-то еще сбрасывает фокус. Я пытаюсь найти то, что здесь: Find out why textbox has lost focus.
UIElement.Focus() будет работать, если вы попытаетесь подключить его к видимому событию изменения вашего текстового поля. Можете ли вы поделиться некоторым кодом, который может быть полезен для обеспечения вашего sceanrio? –
Я обновил свой вопрос. –
Исправлена проблема с этим вопросом: http://stackoverflow.com/questions/7892081/find-out-why-textbox-has-lost-focus. –