Страница: 1 |
1)Как воспользоваться немодальной формой выводимой из модуля 2)Как убрать модальную форму с экрана,а затем ее снова восстановить?
Павлу. И как модальную форму программно закрыть и открыть ее позже? Попробую задать те же вопросы по другому. В VB6 достаточно просто загрузить и показать форму В VBNet немодальная форма может быть создана так: Вопрос 1: Вопрос 2(классический): Пойдем по порядку. Ты можешь использовать немодальную форму если она MDI Child. Тогда ты можешь использовать Show, Hide и т.д. С модальой формой лучше если ты сделаешь F1=Nothing. И перед тем как открыть опять Dim F1 as new Form1 Пойдем по порядку. Ты можешь использовать немодальную форму если она MDI Child. Тогда ты можешь использовать Show, Hide и т.д. С модальой формой лучше если ты сделаешь F1=Nothing. И перед тем как открыть опять Dim F1 as new Form1 Павлу. Module Module1 и Stop после F1.Show() не помогает. Страница: 1 |
Вопрос: Вывод форм
Добавлено: 30.03.04 23:29
Автор вопроса: samvd
(Dim F1 As New Form1:F1.Show),если она после появления сразу исчезает?
F1.ShowDialog()
F1.Hide() 'или F1.Close(),F1.Dispose()
F1.ShowDialog()
- не работает
Ответы
Всего ответов: 14
Номер ответа: 1
Автор ответа:
ol2003
Вопросов: 3
Ответов: 122
Профиль | | #1
Добавлено: 31.03.04 05:48
Show пригодно только для контролей и некоторых специализированных форм (MessageBox). Надо вызывать ShowDialog.
Номер ответа: 2
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #2
Добавлено: 31.03.04 13:44
Первый вопрос не совсем понятен...
Насчёт второго вопроса: при отображении модальной формы код,
вызывающий эту форму приостанавливается до её закрытия. В этом вся
соль.
Номер ответа: 3
Автор ответа:
samvd
Вопросов: 2
Ответов: 4
Профиль | | #3
Добавлено: 31.03.04 14:52
Номер ответа: 4
Автор ответа:
Maxik
Вопросов: 58
Ответов: 201
Профиль | | #4
Добавлено: 31.03.04 17:08
1) F1.show правильно. Посмотри код формы, она где-то там закрывается.
2) Попробуй установить у формы свойство topmost(кажется так)=true.
Будет поверх всех окон, но не модульное, может, подойдет. Или придумай
что-нибудь с многопоточностью.
Номер ответа: 5
Автор ответа:
samvd
Вопросов: 2
Ответов: 4
Профиль | | #5
Добавлено: 01.04.04 22:59
Load Form1
Form1.Show
работать с ней,спрятать (Form1.Hide),снова показать (Form1.Show).
 im F1 As New Form1
F1.Show,
но она после появления сразу исчезает.
Как создать немодальную форму и иметь возможность пользоваться ею?
______________________________________________________________________________
Модальная форма может быть создана так:
 im F1 As New Form1
F1.ShowDialog()
Программно убрать ее с экрана можно
F1.Hide() или F1.Close() или F1.Dispose()
Но,если необходимо снова восстановить ее (F1.ShowDialog()),возникает ошибка:
"Закройте форму перед вызовом ShowDialog"
Что делать?
Номер ответа: 6
Автор ответа:
ol2003
Вопросов: 3
Ответов: 122
Профиль | | #6
Добавлено: 02.04.04 01:09
Номер ответа: 7
Автор ответа:
ol2003
Вопросов: 3
Ответов: 122
Профиль | | #7
Добавлено: 02.04.04 01:13
Номер ответа: 8
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #8
Добавлено: 02.04.04 11:19
Использовать немодальную форму можно в любом случае...
Скрываться она, кстати, не должна... Покажи свой код.
Номер ответа: 9
Автор ответа:
samvd
Вопросов: 2
Ответов: 4
Профиль | | #9
Добавлено: 05.04.04 15:14
Код прост:
Public Sub Main()
Dim F1 As New Form1
F1.Show()
End Sub
End Module
Номер ответа: 10
Автор ответа:
Maxik
Вопросов: 58
Ответов: 201
Профиль | | #10
Добавлено: 05.04.04 18:20
Дай код формы, которую открываешь!!!
Номер ответа: 11
Автор ответа:
samvd
Вопросов: 2
Ответов: 4
Профиль | | #11
Добавлено: 05.04.04 22:26
Это новая форма без дополнительного кода.
Номер ответа: 12
Автор ответа:
vitus
Вопросов: 9
Ответов: 43
Web-сайт:
Профиль | | #12
Добавлено: 19.06.04 13:30
У меня другой вопрос про формы.
А насчет samvd его кода вот так должно получиться
Module Module1
Public Sub main()
 im frmForm1 As New Form1()
Application.Run(frmForm1)
End Sub
End Module
Теперь мой вопрос.
В чем проблема у меня?
В проекте есть модуль где я прописываю:
Module basLoadForm
Public frmMainForm As New frmMain()
Public frmNastrForm As New frmNastr()
End Module
в окне пробую вызвать второе окно
frmMainForm.Enabled = False
frmNastrForm.Show()
первый раз все работает окно появляеться
на втором окне есть кнопка закрыть которая должна закрывать окно
ее код:
Private Sub cmdClosed_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdClosed.Click
frmMainForm.Enabled = True
frmNastrForm.Close()
End Sub
Окно закрывается.
Потом я снова пытаюсь открыть это окно но выдаеться ошибка.
An unhandled exception of type 'System.ObjectDisposedException' occurred in system.windows.forms.dll
Additional information: Cannot access a disposed object named "frmNastr".
В чем дело?
Кто нибудь мне поможет? Если бутет конечно время.
Заранее спасибо Виталя.
Номер ответа: 13
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #13
Добавлено: 20.06.04 16:05
Ты её закрыл, форма была прибита... Ещё раз её создай перед открытием:
frmNastrForm = New frmNastr()
frmNastrForm.Show
Номер ответа: 14
Автор ответа:
vitus
Вопросов: 9
Ответов: 43
Web-сайт:
Профиль | | #14
Добавлено: 22.06.04 16:08
Все понял! Теперь понятно в чем была проблема. Большое спасибо за помощь!