Страницы: 1
RSS
как оставить фокус в TextBox по нажатию Enter
 
Здравствуйте.
Имеется база данных, в которой производится поиск по инв. номеру (TextBox1). Как сделать так, чтобы при вводе данных в TextBox1 после нажатия Enter, фокус оставался в TextBox1 с выделением ранее введенных данных?
Спасибо.
 
Вариант1: выводить найденные данные не в TextBox2 и 3, а в Label - тогда фокусу некуда деваться)
Вариант2: у TextBox2 и 3 свойство Enabled установить в False
 
К сожалению оба врианта не подходят, т.к. в форме куча других TextBoxов и кнопка записи данных.
 
У Вас там есть закомментированный блок. Раскомменируйте его и немного подправьте:
Код
Private Sub textbox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Len(TextBox1.Text) Then
        TextBox1.Text = TextBox1.Text
        Cancel = True
        TextBox1.SetFocus
    Else
        TextBox1.Text = TextBox1.Text
    End If
End Sub



 
Добавляете кнопку на форму(я добавил правее и скрыл за размерами формы). Назначаете ей свойство Default = True. Вешаете на неё процедуру Search. Все. Теперь все будет работать как хотели.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
А можно и не убирать за пределы формы - сделать высоту или ширину нулевой, и оставить в пределах формы))
 
Цитата
Юрий М написал: сделать высоту или ширину нулевой
я не сторонник подобного. Искать потом не очень удобно такой элемент. Лучше либо за пределы, либо Visible=False
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Согласен - Visible проще. А искать - КомбоБокс в окне свойств)) Но главное тут - подход к решению.
 
Цитата
Юрий М написал: У Вас там есть закомментированный блок. Раскомменируйте его и немного подправь
так жестко фокус остается в TextBox1. Невозможно перевести в др. TextBoxы. А если добавить кнопку, она будет не доступна.
 
Вы файл-то мой скачали? Попробовали? Чем не подходит?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Rustems, не цитируйте без необходимости.
 
Цитата
Rustems написал: Невозможно перевести в др. TextBoxы.
Так они же у Вас ТОЛЬКО для отображения результатов поиска.
 
Цитата
The_Prist написал: Чем не подходит?
Вроде бы все хорошо, но теперь не получается Enterом бегать по боксам (т.к.  у commandbutton1 Default = True)
 
У меня бегает. Используйте TAB. А то Вы по Enter хотите и в TextBox1 переходить автоматом и еще по другим контролам бегать. Так не получится. Что-то одно выбирайте, что будет меньше мешать работе.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
The_Prist написал: Вы по Enter хотите и в TextBox1 переходить автоматом и еще по другим контролам бегать
А возможно ли как-то использовать afterupdate для TextBox1, чтобы все-таки по контролам Enter использовать?
 
Цитата
Rustems написал: при вводе данных в TextBox1 после нажатия Enter, фокус оставался в TextBox1
Цитата
Rustems написал: А возможно ли как-то использовать afterupdate для TextBox1, чтобы все-таки по контролам Enter использовать
сделайте выбор, что Вам надо больше. Нельзя для одной и той же операции сделать сразу два разных действия. Либо мы остаемся в ТекстБокс1 или перескакиваем.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist,
Спасибо Вам огромное, что уделили внимание и оказали помощь!
Страницы: 1
Наверх