Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: форма отображается, но не получает фокус... Добавлено: 28.09.08 15:24  

Автор вопроса:  DimDoc
проблема такая:
добавляю SplashScreen1.vb к проекту, состоящему из одной формы.
указываю в свойствах проекта:
startup form: form1
отмечаю: enable application framework
splash screen: SplashScreen1

компилирую. в среде vs всё выполняется как надо.

теперь делаю Pablish. Запускаю setup.exe
запускается SplashScreen, затем появляется форма form1 - вроде бы как надо, Но сразу приступить к вводу данных в текстовые поля НЕВОЗМОЖНО. Надо сначала кликнуть по форме.

Почему форма теряет фокус после загрузки. В чём может быть ошибка???
помогите пожалуйста!

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #1 Добавлено: 03.10.08 19:30
Почему форма теряет фокус после загрузки. В чём может быть ошибка???

Скорее всего тут никакой ошибки нет. Попробуй в событии FormClosed(после закрытия формы) для SplashScreen принудительно передать фокус на нужную форму примерно так: Form1.Focus()
И еще.. каким образом ты закрываешь SplashScreen? Скрываешь через Hide или именно закрываешь?

Ответить

Номер ответа: 2
Автор ответа:
 DimDoc



Вопросов: 21
Ответов: 104
 Профиль | | #2 Добавлено: 04.10.08 02:36
Спасибо за проявленный интерес.
Дело в том, что я не пишу никакой процедуры при закрытии SplashScreen.
Меня упрекали в том, что я зря пыжусь писать свой Sub Main(). И я решил попробовать. Будь, что будет...
Создал новый проект, добавил SplashScreen, перенастроил установки запуска проекта...
Всё вроде бы без лишнего вмешательства.
И ожидал, что проект заработает.
Думал так: если заработает - буду искать ошибки в своём коде.... Но проект не заработал как надо!!!

СТОП!!!
Перед отправкой этого письма решил ещё раз создать новый проект и протестировать его.
И, о чудо!!! Фокус не потерялся!!!

Извините.... Не понимаю - что это было???

Ответить

Номер ответа: 3
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #3 Добавлено: 04.10.08 07:34
Меня упрекали в том, что я зря пыжусь писать свой Sub Main()

Правильно упрекали, это абсолютно незачем делать.(кроме каких то специфических задач, которые нельзя решить стандартными средствами)
Извините.... Не понимаю - что это было???

Скорее всего (это лишь мои догадки) SplashScreen является модальным окном, и при его закрытии система сама решает передавать ли фокус на другое окно или нет. Попробуй сделать как я говорил ранее - передать фокус принудительно на нужную форму,чтоб у системы не оставалось желания оставить ее в деактивированном состоянии.

Ответить

Номер ответа: 4
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #4 Добавлено: 04.10.08 07:40
Кроме того имеет смысл опробовать вариант предложенный Brand'om. Убрать из настроект проект SplashScreen(ввиду того что ты не можешь контролировать его появление и закрытие) и и показать его как обычную форум (через Show) в событии StartUp приложения (Brand показал в соседней ветке как это можно сделать)
 
p.s. Примером помочь не могу, поскольку уже давно не пишу на VB и соответственно не имею его под рукой..

Ответить

Номер ответа: 5
Автор ответа:
 DimDoc



Вопросов: 21
Ответов: 104
 Профиль | | #5 Добавлено: 04.10.08 13:40
Спасибо! Суть понял.

Ответить

Номер ответа: 6
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #6 Добавлено: 04.10.08 16:39
EROS, вариант предложенный Brand'ом как раз предусматривает использование стандартной Splash Screen и стандартной модели, и там все отлично работает и отлично ставит фокус.
У товарища проблемы из-за того что он сделал Splash Screen без стандартной модели, таймером и т.п.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам