|
VB6: SetFocus, да не совсем...
|
|||
---|---|---|---|
#18+
Метод SetFocus передает фокус указанному контролу. Да вот беда - одновременно активируется форма, на которой находится контрол. Есть ли простой способ передать фокус, но в то же время избежать активации формы?? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2011, 00:36 |
|
VB6: SetFocus, да не совсем...
|
|||
---|---|---|---|
#18+
Shocker.Pro, нету. Ни простого, ни сложного. Дочерний элемент не может получить фокус раньше родительского. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2011, 00:49 |
|
VB6: SetFocus, да не совсем...
|
|||
---|---|---|---|
#18+
пробуй камнемнету. Ни простого, ни сложного. Дочерний элемент не может получить фокус раньше родительского. Хорошо. Поставим вопрос по-другому. Не передать фокус, а сделать этот элемент активным. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2011, 00:51 |
|
VB6: SetFocus, да не совсем...
|
|||
---|---|---|---|
#18+
>Shocker.Pro >Не передать фокус, а сделать этот элемент активным. Не вижу разницы. На простом примере: открыто две формы А и Б, активна в данный момент Б. В форме А есть поле П. Как дать пользователю что-то ввести в поле П, не активизируя при этом форму А? Такого хочется? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2011, 01:04 |
|
VB6: SetFocus, да не совсем...
|
|||
---|---|---|---|
#18+
Можно если сделать tabindex=0 но в процесе не получается только при загрузке формы ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2011, 01:13 |
|
VB6: SetFocus, да не совсем...
|
|||
---|---|---|---|
#18+
пробуй камнемНе вижу разницы. На простом примере: открыто две формы А и Б, активна в данный момент Б. В форме А есть поле П. Как дать пользователю что-то ввести в поле П, не активизируя при этом форму А? На неактивной форме в фоне происходят некоторые вещи (в частности, асинхронная работа с сервером БД), из-за которых активный элемент теряет фокус, когда эти вещи заканчивают происходить, фокус нужно вернуть туда, где он был. При этом, пока там происходит копошение, пользователь работает с другой формой. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2011, 01:27 |
|
VB6: SetFocus, да не совсем...
|
|||
---|---|---|---|
#18+
Если мой хрустальный шар не глючит, то у тебя на форме висит событие на активацию и оно срабатывает, а ты этого не хочешь? Тогда, проще всего добавить в форму флаг: "а сейчас мы программно передадим фокус твоему элементу". Взводить его перед передачей фокуса, а в событии активизации формы соответственно проверять его и если есть - снять флаг и выйти. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2011, 01:28 |
|
VB6: SetFocus, да не совсем...
|
|||
---|---|---|---|
#18+
способ-то есть. Если поставить активному элементу Enabled=False, то активным становится следующий по TabIndex-у. Если всем, кроме нужного, поставить Enabled=False, то нужный станет активным, не активируя при этом форму. Но это как-то громоздко и криво. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2011, 01:29 |
|
VB6: SetFocus, да не совсем...
|
|||
---|---|---|---|
#18+
Shocker.Proпробуй камнемНе вижу разницы. На простом примере: открыто две формы А и Б, активна в данный момент Б. В форме А есть поле П. Как дать пользователю что-то ввести в поле П, не активизируя при этом форму А? На неактивной форме в фоне происходят некоторые вещи (в частности, асинхронная работа с сервером БД), из-за которых активный элемент теряет фокус, когда эти вещи заканчивают происходить, фокус нужно вернуть туда, где он был. При этом, пока там происходит копошение, пользователь работает с другой формой.Тогда все проще. Неактивная форма не должна активизироваться. Зачем она фокус забирает? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2011, 01:30 |
|
VB6: SetFocus, да не совсем...
|
|||
---|---|---|---|
#18+
White OwlЕсли мой хрустальный шар не глючит Глючит. Примерно ситуацию я описал выше. Всяческие флаги на форме не подходят еще и тем, что у меня на форме юзерконтролы в основном, в том числе два-три раза вложенные, а указанные действия могут происходит на самом глубоком юзерконтроле. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2011, 01:31 |
|
VB6: SetFocus, да не совсем...
|
|||
---|---|---|---|
#18+
White OwlНеактивная форма не должна активизироваться. Зачем она фокус забирает? Так ты не понял. Возникло событие по которому я должен сменить активный элемент на неактивной форме. при этом не активируя саму форму. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2011, 01:32 |
|
VB6: SetFocus, да не совсем...
|
|||
---|---|---|---|
#18+
Shocker.ProWhite OwlНеактивная форма не должна активизироваться. Зачем она фокус забирает? Так ты не понял. Возникло событие по которому я должен сменить активный элемент на неактивной форме. при этом не активируя саму форму.О! Наконец-то правильный вопрос. Тогда вариант только один - нырять поглубже и слать WM_SETFOCUS в HWND элемента который должен стать активным на неактивной форме. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2011, 01:40 |
|
|
start [/forum/topic.php?fid=60&fpage=111&tid=2159085]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 149ms |
0 / 0 |