powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB6: SetFocus, да не совсем...
13 сообщений из 13, страница 1 из 1
VB6: SetFocus, да не совсем...
    #37051708
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Метод SetFocus передает фокус указанному контролу. Да вот беда - одновременно активируется форма, на которой находится контрол.
Есть ли простой способ передать фокус, но в то же время избежать активации формы??
...
Рейтинг: 0 / 0
VB6: SetFocus, да не совсем...
    #37051719
Shocker.Pro,
нету. Ни простого, ни сложного. Дочерний элемент не может получить фокус раньше родительского.
...
Рейтинг: 0 / 0
VB6: SetFocus, да не совсем...
    #37051720
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробуй камнемнету. Ни простого, ни сложного. Дочерний элемент не может получить фокус раньше родительского.

Хорошо. Поставим вопрос по-другому. Не передать фокус, а сделать этот элемент активным.
...
Рейтинг: 0 / 0
VB6: SetFocus, да не совсем...
    #37051730
>Shocker.Pro
>Не передать фокус, а сделать этот элемент активным.

Не вижу разницы.
На простом примере: открыто две формы А и Б, активна в данный момент Б. В форме А есть поле П. Как дать пользователю что-то ввести в поле П, не активизируя при этом форму А?
Такого хочется?
...
Рейтинг: 0 / 0
VB6: SetFocus, да не совсем...
    #37051739
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно если сделать tabindex=0 но в процесе не получается только при загрузке формы
...
Рейтинг: 0 / 0
VB6: SetFocus, да не совсем...
    #37051747
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробуй камнемНе вижу разницы.
На простом примере: открыто две формы А и Б, активна в данный момент Б. В форме А есть поле П. Как дать пользователю что-то ввести в поле П, не активизируя при этом форму А?
На неактивной форме в фоне происходят некоторые вещи (в частности, асинхронная работа с сервером БД), из-за которых активный элемент теряет фокус, когда эти вещи заканчивают происходить, фокус нужно вернуть туда, где он был. При этом, пока там происходит копошение, пользователь работает с другой формой.
...
Рейтинг: 0 / 0
VB6: SetFocus, да не совсем...
    #37051748
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если мой хрустальный шар не глючит, то у тебя на форме висит событие на активацию и оно срабатывает, а ты этого не хочешь?
Тогда, проще всего добавить в форму флаг: "а сейчас мы программно передадим фокус твоему элементу". Взводить его перед передачей фокуса, а в событии активизации формы соответственно проверять его и если есть - снять флаг и выйти.
...
Рейтинг: 0 / 0
VB6: SetFocus, да не совсем...
    #37051750
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
способ-то есть. Если поставить активному элементу Enabled=False, то активным становится следующий по TabIndex-у. Если всем, кроме нужного, поставить Enabled=False, то нужный станет активным, не активируя при этом форму. Но это как-то громоздко и криво.
...
Рейтинг: 0 / 0
VB6: SetFocus, да не совсем...
    #37051751
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proпробуй камнемНе вижу разницы.
На простом примере: открыто две формы А и Б, активна в данный момент Б. В форме А есть поле П. Как дать пользователю что-то ввести в поле П, не активизируя при этом форму А?
На неактивной форме в фоне происходят некоторые вещи (в частности, асинхронная работа с сервером БД), из-за которых активный элемент теряет фокус, когда эти вещи заканчивают происходить, фокус нужно вернуть туда, где он был. При этом, пока там происходит копошение, пользователь работает с другой формой.Тогда все проще. Неактивная форма не должна активизироваться. Зачем она фокус забирает?
...
Рейтинг: 0 / 0
VB6: SetFocus, да не совсем...
    #37051753
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlЕсли мой хрустальный шар не глючит
Глючит. Примерно ситуацию я описал выше.
Всяческие флаги на форме не подходят еще и тем, что у меня на форме юзерконтролы в основном, в том числе два-три раза вложенные, а указанные действия могут происходит на самом глубоком юзерконтроле.
...
Рейтинг: 0 / 0
VB6: SetFocus, да не совсем...
    #37051754
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlНеактивная форма не должна активизироваться. Зачем она фокус забирает?
Так ты не понял. Возникло событие по которому я должен сменить активный элемент на неактивной форме. при этом не активируя саму форму.
...
Рейтинг: 0 / 0
VB6: SetFocus, да не совсем...
    #37051760
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProWhite OwlНеактивная форма не должна активизироваться. Зачем она фокус забирает?
Так ты не понял. Возникло событие по которому я должен сменить активный элемент на неактивной форме. при этом не активируя саму форму.О! Наконец-то правильный вопрос.
Тогда вариант только один - нырять поглубже и слать WM_SETFOCUS в HWND элемента который должен стать активным на неактивной форме.
...
Рейтинг: 0 / 0
VB6: SetFocus, да не совсем...
    #37052607
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owlслать WM_SETFOCUS в HWND элемента который должен стать активным на неактивной форме.
Это работает, это ок, спасибо.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB6: SetFocus, да не совсем...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]