На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual Basic: Общие вопросы
Здесь обсуждаются вопросы по языку Visual Basic 1-6 (а так же по схожим языкам, как, например, PowerBASIC).
Вопросы по Visual Basic .NET (это который входит в состав Visual Studio 2002/2003/2005/2008+, для тех, кто не в курсе) обсуждаются в разделе .NET.

Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются. Студенты, вам сюда: ПОМОЩЬ СТУДЕНТАМ!
4. Используйте теги [ code=vba ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Формулируйте свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной (и более) давности, без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта user posted image FAQ Раздела user posted image Кладовка user posted image Наши Исходники user posted image API-Guide user posted image Поиск по Разделу user posted image MSDN Library Online user posted image Google

Ваше мнение о модераторах: user posted image SCINER, user posted image B.V.
Модераторы: SCINER, B.V.
  
> Фокус на WebBrowser
    Как сделать, чтобы после .Navigate WB не получал фокус? Возврат фокуса в WB_GotFocus кривое решение...
      ExpandedWrap disabled
        WB.Enabled = False

      ?
        нет у него Enabled
          Ну попробуй для начала разобраться, как и когда на него попадает фокус. Вариантов, в общем, два - либо .Navigate переводит на него фокус в качестве дополнительного бонуса, либо сам WB забирает себе фокус после, например, завершения загрузки страницы. В первом случае после выполнения метода можно попробовать принудительно поставит фокус на нужный контрол. Во втором - хрен ты чего сделаешь, чтобы тебе не казалось криво.
            ExpandedWrap disabled
              Private Sub Command1_Click()
                  WebBrowser1.Navigate2 "www.google.ru"
               Debug.Print "WebBrowser1.Navigate2"
              End Sub
               
              Private Sub Text1_LostFocus()
               Debug.Print "Text1_LostFocus"
              End Sub
               
              Private Sub WebBrowser1_GotFocus()
               Debug.Print "WebBrowser1_GotFocus"
              End Sub


            Вывод:
            Text1_LostFocus
            WebBrowser1.Navigate2
            WebBrowser1_GotFocus

            Текстовое поле теряет фокус ещё до завершения .Navigate2. Я думал, может в самом Navigate2 есть флаги, указывающие на то, что фокус не следует отбирать, или что-то в свойствах WB... Кинул WB во фрейм с .Enabled = False - не помогло.
            Сообщение отредактировано: BlackSun -
              Цитата BlackSun @
              Текстовое поле теряет фокус ещё до завершения .Navigate2.

              Ясен палец - он же улетает на Command1... надо не по батону запускать, а по таймеру.
                Не знаю как в васике но у стандартного компонента есть метод OnDownloadComplete, повесь на его вызов Text1.SetFocus
                  Akina, я реально тупанул )
                  С таймером:
                  ExpandedWrap disabled
                    Private Sub Text1_LostFocus()
                     Debug.Print "Text1_LostFocus"
                    End Sub
                     
                    Private Sub Timer1_Timer()
                        Timer1.Interval = 0
                        WebBrowser1.Navigate2 "www.google.ru"
                     Debug.Print "WebBrowser1.Navigate2"
                     
                    End Sub
                     
                    Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
                     Debug.Print "WebBrowser1_DocumentComplete"
                     
                    End Sub
                     
                    Private Sub WebBrowser1_GotFocus()
                     Debug.Print "WebBrowser1_GotFocus"
                    End Sub

                  WebBrowser1.Navigate2
                  WebBrowser1_DocumentComplete
                  Text1_LostFocus
                  WebBrowser1_GotFocus

                  Что интересно, если WB лежит в отключенном фрейме, то в текстовом каретка мигает и можно вводить, но клавиша Backspace не работает и клавиши стрелок вправо-влево работают глючно. В целом имеем баговый ввод в текстовом )
                  Сообщение отредактировано: BlackSun -
                    Именно баги отображения текста и каретки в TextBox и заставили создать эту тему. Решение пока не найдено, ибо неизвестно, где был фокус до отнимания его браузером.
                      Цитата BlackSun @
                      ибо неизвестно, где был фокус до отнимания его браузером

                      Ну, еще как вариант, сделать внутри проги свой "менеджер фокусов", в котором и хранить на каком же элементе сейчас фокус был, чтобы вернуть его туда обратно.
                      1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,0387 ]   [ 15 queries used ]   [ Generated: 19.05.24, 03:01 GMT ]