Тема: TextBox

Доброго всем дня!
Столкнулась вот с какой проблемой:
Запускаю форму на которой есть МультиПэйдж.
На первой странице МультиПэйджа есть ТекстБокс1.
Все работает замечательно!!!
Перелистываю на второю страницу, на которой ТекстБокс2 и ТекстБокс3.
Вот тут возникает небольшая проблема. Курсор автоматически устанавливается в ТекстБокс2, а мне этого не надо. Надо чтобы курсора не было ни в каком ТекстБоксе. Чтобы пользователь сам устанавливал его в нужный ТекстБокс.

Re: TextBox

Вот для чего все это надо:
Если пользователь вносит изменения в ТекстБокс или просто устанавливает курсор, то кнопочка, которая есть на Форме, приобретает значение

CommandButton1.Enabled = True

поэтому необходимо чтобы курсор не был ни в одном из ТекстБоксов

Re: TextBox

Или может кто подскажет как сделать условие, чтобы при внесении изменений в ТекстБокс (Именно изменений), активизировалась кнопка.

Re: TextBox

А setfocus не помогает?

Re: TextBox

> Сидор Лютый
Вот так наводить курсор:
TextBox1.SetFocus
А как сделать условие чтобы он не наводился???
На Label-ы он я так поняла не наводится???

Re: TextBox

Ну вообще там много способов управлением фокусом. Например свойство контрола "TabIndex" устанавливает очередность фокуса. По умолчанию фокус устанавливается на контрол с наименьшим TabIndex.. Как-то так, вродь.
Лучше открыть какой-нибудь офисный VBE и почитать там help по этому поводу. Счас уже всего не вспомню..

Re: TextBox

> Сидор Лютый
Интересно получается. У меня есть Label с "TabIndex" равным нулю и есть TextBox1 с "TabIndex" равным 26, а фокус наводится на TextBox1 почему-то.
Пробовала на кнопку фокус навести (у меня на форме есть еще кнопка) - наводится при открывании страницы MultiPage, но на этой странице есть еще ползунок, при перемещении которого фокус опять автоматически встает в TextBox1.
Вроде мелочь, а было бы приятно если бы это работало!!!

Re: TextBox

Ну так Label вроде не предназначен для введения информации пользователем, и фокус на него при всем желании не навести. Если, к примеру, в коде задать что-то типа Label1.SetFocus, выйдет ошибка. Надо установить TabIndex=0 для того контрола, на котором должен быть фокус при переходе на страницу.

Re: TextBox

> AlexV
Ну вот проблема в том и состоит что на станице есть только  Label-ы  и  TextBox-ы.
На что же навести фокус???
Есть еще кнопка, но она на форме вне страницы Мультипейджа. Если двигаешь ползунок на Мультипейдже - курсор устанавливается в ТекстБокс и происходит активация кнопки!
Может можно решить как-то проблему другим способом?? Чтобы при внесении изменений происходила активация кнопки??? Я создала отдельную тему на форуме.

Re: TextBox

Ну, к примеру, решение "паллиативное",- добавить на данную страницу лишний контрол (кнопку, или текстбокс), с которыми не связан никакой код. И контрол этот сделать невидимым за счет значений свойств Left или Top (т.е. присвоить им значение, заведомо большее, чем соответственно ширина или высота страницы MultiPage (с учетом прокрутки), а TabIndex=0.

Re: TextBox

> AlexV
Я тоже думала над этим. Но неужели по другому никак???
:)

Re: TextBox

Если на странице только Label-ы и TextBox-ы, то при активации страницы фокус по-любому будет на одном из TextBox. Значит, надо применить процедуру для активации кнопки, например, такую:

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
  CommandButton1.Enabled = True
End Sub

То есть активироваться кнопка будет после внесения изменений в текстбокс и переноса фокуса к другому объекту. Если же текстбоксу значение присваивается программно (к примеру, при загрузке формы или активации страницы), то в соответствующих процедурах -Private Sub UserForm_Activate() или Private Sub MultiPage1_Change() надо вставить в конце строчку:

CommandButton1.Enabled = False

Re: TextBox

> AlexV
Спасибо Вам огромное за помощь! Сегодня протестирую обязательно!