Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Вывод форм Добавлено: 30.03.04 23:29  

Автор вопроса:  samvd

 1)Как воспользоваться немодальной формой выводимой из модуля
(Dim F1 As New Form1:F1.Show),если она после появления сразу исчезает?

 2)Как убрать модальную форму с экрана,а затем ее снова восстановить?
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-сайт: www.vbnet.ru
 Профиль | | #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

 Попробую задать те же вопросы по другому.

В VB6 достаточно просто загрузить и показать форму
 Load Form1
 Form1.Show
работать с ней,спрятать (Form1.Hide),снова показать (Form1.Show).

В VBNet немодальная форма может быть создана так:
 ;Dim F1 As New Form1
 F1.Show,
но она после появления сразу исчезает.

 Вопрос 1:
Как создать немодальную форму и иметь возможность пользоваться ею?
______________________________________________________________________________
Модальная форма может быть создана так:
 ;Dim F1 As New Form1
 F1.ShowDialog()
Программно убрать ее с экрана можно
 F1.Hide()  или F1.Close() или F1.Dispose()
Но,если необходимо снова восстановить ее (F1.ShowDialog()),возникает ошибка:
"Закройте форму перед вызовом ShowDialog"

 Вопрос 2(классический): 
Что делать?

Ответить

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



Вопросов: 3
Ответов: 122
 Профиль | | #6 Добавлено: 02.04.04 01:09

Пойдем по порядку. Ты можешь использовать немодальную форму если она MDI Child. Тогда ты можешь использовать Show, Hide и т.д.

С модальой формой лучше если ты сделаешь F1=Nothing. И перед тем как открыть опять Dim F1 as new Form1

Ответить

Номер ответа: 7
Автор ответа:
 ol2003



Вопросов: 3
Ответов: 122
 Профиль | | #7 Добавлено: 02.04.04 01:13

Пойдем по порядку. Ты можешь использовать немодальную форму если она MDI Child. Тогда ты можешь использовать Show, Hide и т.д.

С модальой формой лучше если ты сделаешь F1=Nothing. И перед тем как открыть опять Dim F1 as new Form1

Ответить

Номер ответа: 8
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #8
Добавлено: 02.04.04 11:19
Использовать немодальную форму можно в любом случае...
Скрываться она, кстати, не должна... Покажи свой код.

Ответить

Номер ответа: 9
Автор ответа:
 samvd



Вопросов: 2
Ответов: 4
 Профиль | | #9 Добавлено: 05.04.04 15:14

 Павлу.
Код прост:

Module Module1
    Public Sub Main()
        Dim F1 As New Form1
        F1.Show()
    End Sub
End Module

и Stop после F1.Show() не помогает.

Ответить

Номер ответа: 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-сайт: www.jgukz.narod.ru
 Профиль | | #12
Добавлено: 19.06.04 13:30
У меня другой вопрос про формы.
А насчет samvd его кода вот так должно получиться
Module Module1
    Public Sub main()
        ;Dim 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-сайт: www.vbnet.ru
 Профиль | | #13
Добавлено: 20.06.04 16:05
Ты её закрыл, форма была прибита... Ещё раз её создай перед открытием:

frmNastrForm = New frmNastr()
frmNastrForm.Show

Ответить

Номер ответа: 14
Автор ответа:
 vitus



Вопросов: 9
Ответов: 43
 Web-сайт: www.jgukz.narod.ru
 Профиль | | #14
Добавлено: 22.06.04 16:08
Все понял! Теперь понятно в чем была проблема. Большое спасибо за помощь!

Ответить

Страница: 1 |

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



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