Страница: 1 | 2 |
|
Вопрос: sub Main() - не понимаю...
|
Добавлено: 17.09.08 19:29
|
|
Автор вопроса: DimDoc
|
Создаю новый проект. Одна форма. F5 - форма перед нами...
пробую тоже самое сделать через модуль: добавляю модуль:
[source]
Module Module1
Public f As Form1
Sub main()
f = New Form1
f.Show()
End Sub
End Module
[\source]
В проекте настраиваю стартовать с Sub Main(). Жму F5 - форма появляется, но мгновенно исчезает.
Что делаю не так?
Ответить
|
Номер ответа: 2 Автор ответа: DimDoc
Вопросов: 21 Ответов: 104
|
Профиль | | #2
|
Добавлено: 17.09.08 20:06
|
Как же нормально, если форма не отображается?
Ответить
|
Номер ответа: 4 Автор ответа: DimDoc
Вопросов: 21 Ответов: 104
|
Профиль | | #4
|
Добавлено: 17.09.08 20:32
|
да пока ничего.... проект абсолютно пустой...
просто пытаюсь понять - что к чему (свойства форм, создание, события, загрузка и т.д.)
Ответить
|
Номер ответа: 5 Автор ответа: DimDoc
Вопросов: 21 Ответов: 104
|
Профиль | | #5
|
Добавлено: 17.09.08 21:07
|
форма отображается и сразу выгружается, как если бы в процедуре стоял оператор END.
Ответить
|
Номер ответа: 7 Автор ответа: DimDoc
Вопросов: 21 Ответов: 104
|
Профиль | | #7
|
Добавлено: 17.09.08 23:37
|
извините, не знаю что такое дотнете... .
я изучаю Visual Basic 2008 .net
Вопрос, вроде бы должен быть простым для программистов .NET
Как запустить проект из Sub Main()?
Ответить
|
Номер ответа: 9 Автор ответа: DimDoc
Вопросов: 21 Ответов: 104
|
Профиль | | #9
|
Добавлено: 18.09.08 10:46
|
Решение найти удалось... Теперь весь код выглядит так:
- Module Module1
- Public f As Form1
- Sub main()
- f = New Form1
- Application.Run(f)
- End Sub
- End Module
Обратите внимание - никакого f.show() !!!
Что Вы думаете об этом?
Ответить
|
Номер ответа: 11 Автор ответа: DimDoc
Вопросов: 21 Ответов: 104
|
Профиль | | #11
|
Добавлено: 29.09.08 00:49
|
даже не знаю... думать или нет...
1) Какой тип приложения?
WindowsApplication1
2) Почему просто не указана стартовая форма? Зачем эта морока с Sub Main?
Ну.... не знаю, пока.... зачем морока...
MSDN пока что описывает sub main() - как главную процедуру проекта, с которой должен начинаться любой проект!!! В процессе загрузки приложения из нескольких форм, например можно визуализировать SplashScreen, а в конце процедуры указать - какую форму вывести первой.
3) После завершения работы основного потока (в данном случае в нем работает Sub Main) работа приложения завершается, остальные вопросы думаю должны отпасть сами собой.
...вопросы не отпадают, а наоборот....
почему form.show() не оставляет форму видимой?
это же не процедура form load...
Например в VB6 я делал примерно так:
Sub Main()
If App.PrevInstance = True Then
MsgBox "Программа уже запущена!", vbInformation"
Else
frmSplash.Show
frmSplash.Refresh
' необходимые дополнительные операции
Set fMainForm = New Frm1
Set myFrm2 = New Frm2
Set myFrm3 = New Frm3
Set myFrm4 = New Frm4
Set myFrm5 = New Frm5
' и т.д.
Load fMainForm
Load myFrm1
Load myFrm2
Load myFrm3
Load myFrm4
Load myFrm5
Unload frmSplash
fMainForm.Show
fMainForm.Refresh
End If
End Sub
и Всё РАБОТАЛО!!!
но пришло время изучать Visual Basic .NET
и даже простые проекты не работают...
Например есть 1 форма и заставка, которая стартует. Форма на экране отображается, но фокус теряет. Надо по ней кликнуть, чтобы начать ввод в текстовое поле...
Подскажите, пожалуйста - где ошибка? Что не так?
Skywalker пишет, что в 2005 все прекрасно работает) видимо это какая то тонкость 2008...
Я удалил Visual Studio 2008 Express Edition, и установил Visual Studio 2008 Professional Edition. Но легче не стало...
уже не знаю, что и думать...
Ответить
|
Номер ответа: 12 Автор ответа: DimDoc
Вопросов: 21 Ответов: 104
|
Профиль | | #12
|
Добавлено: 29.09.08 00:58
|
подробно о потере фокуса в вопросе: форма отображается, но не получает фокус...
... вот только коментариев пока нет...
Ответить
|
Номер ответа: 13 Автор ответа: Artyom
Разработчик
Вопросов: 130 Ответов: 6602
|
Профиль | | #13
|
Добавлено: 30.09.08 01:20
|
почему form.show() не оставляет форму видимой?
Я же написал почему - основной поток завершает свою работу и вместе с этим работу всего приложения.
MSDN пока что описывает sub main() - как главную процедуру проекта, с которой должен начинаться любой проект!!! В процессе загрузки приложения из нескольких форм, например можно визуализировать SplashScreen, а в конце процедуры указать - какую форму вывести первой.
Ну тебе же показали как Application.Run работает, что не ясно?
Например в VB6 я делал примерно так:
Забудь о том как ты это делал в VB6, здесь все по другому.
Skywalker пишет, что в 2005 все прекрасно работает) видимо это какая то тонкость 2008...
Никаких тонкостей совершенно нет.
Я удалил Visual Studio 2008 Express Edition, и установил Visual Studio 2008 Professional Edition. Но легче не стало...
Между этими двумя продуктами тоже разницы нет, в них все одинаково работает.
уже не знаю, что и думать...
Перечитай еще раз тему, тебе на все вопросы ответили
Ответить
|
Страница: 1 | 2 |
Поиск по форуму