Установка курсора в новое окно

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Установка курсора в новое окно

Сообщение Summer.05 » 01.07.2006 (Сб) 15:41

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

На событие Private Sub Form_Load () требуется:
- установить фокус для TextBox1
- установить курсор туда же
- переключить клавиатуру на русский язык.

Тогда сразу видно, что и где нужно вводить и не ошибаться с раскладкой.
Заранее - спасибо!

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 01.07.2006 (Сб) 16:54

Не SetFoces, а SetFocus:
Text1.SetFocus +_+

Переключение раскладки 100% было на форуме.. Искать влом.

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 01.07.2006 (Сб) 16:58

AjaxVS
Спасибо! Я допустил опечатку, естественно.
Установив фокус, я не вижу в окне мигающего курсора. Почему?
С переключением раскладки уже разобрался по аналогии.
Спасибо!

Lexandrus
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 15.05.2006 (Пн) 18:08
Откуда: Ростов-на-Дону

Сообщение Lexandrus » 01.07.2006 (Сб) 18:54

Установив фокус, я не вижу в окне мигающего курсора. Почему?

Потому, что курсор находится в другом месте... Ты таким образом установил фокус, а не курсор.
С уважением, LeX.

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 02.07.2006 (Вс) 0:58

Попробуй сначала HideCaret hwnd1, где hwnd1 - это дескриптор окна, где в данный момент курсор, а потом ShowCaret your_hwnd, где your_hwnd - это дескриптор твоего окна, которое должно получить курсор.
Подпись проходит рефакторинг

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 02.07.2006 (Вс) 1:03

Во дают... Сто апей на ровном месте :roll:
Метод .SetFocus сам ставит каретку, я только что проверил.
Изображение

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 02.07.2006 (Вс) 21:08

tyomitch
На событие Fom_Load () я установил
Text4.SetFocus

И... ничего/

Курсор в окне Text4 TextBox не появилcя.
Не подскажешь?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 02.07.2006 (Вс) 21:16

Код: Выделить всё
Private Sub Form_load()
Me.Show
Text4.SetFocus
End Sub

...и все появляется :)

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 02.07.2006 (Вс) 21:59

Summer.05 писал(а):tyomitch
На событие Fom_Load () я установил
Text4.SetFocus
Скорее всего у тебя в событии Form_Load стоит On Error Resume Next, поэтому курсор и не появляется. Если ты On Error закомментируешь, то увидишь, что он не просто не появляется, а появляется ошибка. Элемент управления не может получить фокус в событии Form_Load , пока форма не отображена.
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 02.07.2006 (Вс) 23:05

vvs_adm писал(а):
Summer.05 писал(а):tyomitch
На событие Fom_Load () я установил
Text4.SetFocus
Скорее всего у тебя в событии Form_Load стоит On Error Resume Next, поэтому курсор и не появляется. Если ты On Error закомментируешь, то увидишь, что он не просто не появляется, а появляется ошибка. Элемент управления не может получить фокус в событии Form_Load , пока форма не отображена.
Голова!...
tyomitch писал(а):Во дают... Сто апей на ровном месте :roll:
Метод .SetFocus сам ставит каретку, я только что проверил.
Тоже проверял в свое время - истину глаголишь...
А я все практикую лечение травами...

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 03.07.2006 (Пн) 8:00

Twister писал(а):
vvs_adm писал(а):
Summer.05 писал(а):tyomitch

На событие Fom_Load () я установил
Text4.SetFocus
Скорее всего у тебя в событии Form_Load стоит On Error Resume Next, поэтому курсор и не появляется. Если ты On Error закомментируешь, то увидишь, что он не просто не появляется, а появляется ошибка. Элемент управления не может получить фокус в событии Form_Load , пока форма не отображена.


Да, ты прав, так оно и есть.


Но тогда на какое событие устанавливать Text4.SetFocus, чтобы курсор появился в окне?

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 03.07.2006 (Пн) 8:01

Amed
Ты прав, этот код работает, но только в том случае, если при этом событии ничего другого не происходит. Во всех остальных случаях выдается ошибка. Так как и писал VVS_adm

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 03.07.2006 (Пн) 8:08

Summer.05 писал(а):Но тогда на какое событие устанавливать Text4.SetFocus, чтобы курсор появился в окне?
В зависимости от того, что тебе именно нужно :) Если просто, чтобы при загрузке формы фокус был в текстовом поле, то не изголяйся, а установи ему в дизайнере (нужному текстбоксу) TabIndex=0 :wink:
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 03.07.2006 (Пн) 8:10

[vvs_adm

Да уж....
Просто как все гениальное...
Спасибо тебе большое!

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 03.07.2006 (Пн) 20:17

Summer.05
Ещё можно повесить передачу фокуса в этот текстбокс на Form_Activate.
Если всё делать своими ручками, они скоро отвалятся !

Summer.05
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 28.12.2005 (Ср) 20:19
Откуда: Москва

Сообщение Summer.05 » 03.07.2006 (Пн) 21:07

Kovu
Вот, спасибо, я никак не мог сообразить - под какое событие подвязать передачу фокуса.
Спасибо!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 49

    TopList