powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Непонятное поведение setfocus на TABSTRIP
5 сообщений из 5, страница 1 из 1
Непонятное поведение setfocus на TABSTRIP
    #37192335
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Вопрос такой

У меня на форме есть TABSTRIP с 3 закладками. Выстроил переход при нажатии TAB по контролам с переключением закладок. Столкнулся с такой неприятной штукой. Рядом с одним из полей формы(пусть будет поле А), на второй закладке, есть кнопка по которой открывается справочник. Если я открываю справочник и подставляю от туда значения в поле А- все хорошо. И есть кнопка по которой осуществляется поиск в справочнике на основании значения введенного в поле А. Вот тут и кроется засада. Если в поле отсутствует значение для поиска, то выбрасываю соответствующее сообщение с помощью msgbox. При этом фокус должен устанавливаться в поле А, куда вводится параметр поиска.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 If IsNull(Me.s_cod56.Text) Or Me.s_cod56.Text = "" Then
            MsgBox "Отсутствует параметр поиска.", vbCritical + vbOKOnly, "Ошибка"
            
            Set Me.TbS.SelectedItem = Me.TbS.Tabs( 2 )            
            Me.s_cod56.SetFocus            
            Exit Sub
        Else
            Call sw_spr_search(Me.s_cod56.Text, "56")
 End If


Вот тут и кроется пакость, после msgbox система переходит на tabindex 0 в форме (если не указывать поле куда хочу поставить курсор , те исключить строки

Код: plaintext
1.
2.
3.
Set 
Me.TbS.SelectedItem = Me.TbS.Tabs( 2 )            
Me.s_cod56.SetFocus   
а если не исключать, то на первых контрол первой закладки.
всю голову сломал уже. Придумал конечно вариант без MSGBOX. но интересно разобраться
...
Рейтинг: 0 / 0
Непонятное поведение setfocus на TABSTRIP
    #37192998
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_men,

Вот неприятность такая же ерунда при вызове ACTIVХ календарика, как только я его закрываю фокус теряется, а потом переходит на первый элемент массива TABINDEX :( неужели никто не сталкивался?
...
Рейтинг: 0 / 0
Непонятное поведение setfocus на TABSTRIP
    #37193047
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_men,

С календарем вопрос решил, а вот с msgbox не совсем. на форме есть еще несколько контролов у которых идет контролль правильности ввода данных и в случае ошибки сообщение MSGBOX. Да и событие on error никто не отменял. Есть у кого идеи?
...
Рейтинг: 0 / 0
Непонятное поведение setfocus на TABSTRIP
    #37193785
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй перед а может после msgbox так и так поробуй вставить DoEvents
...
Рейтинг: 0 / 0
Непонятное поведение setfocus на TABSTRIP
    #37193867
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TpaBka,

пробовал не прокатывает. часть вопросов решила следующая фишка. На форуме наткнулся что MSGBOX берет фокус на себя и всем элементам на форме ставит
Код: plaintext
контрол.enabe=false
соответственно сделав вот такой финт
Код: plaintext
1.
2.
контрол.enabe=true
контрол.setfocus
я получил желаемый результат. Но тут есть осечка. это работает если вызов MSGBOX идет из стандартного элемента (например поле ввода, кнопка и т.п.). Если вызов идет из элемента ActivX такая штука не прокатывает. пока сижу ищу пути обхода.
зато попутно уже 7 багов выловил:)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Непонятное поведение setfocus на TABSTRIP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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