DOBON.NET DOBON.NETプログラミング掲示板過去ログ

起動時に表示するフォームを選択するには

環境/言語:[Windows2000]
分類:[.NET]

起動時に、「sub main」を実行し、
ある条件で起動するフォームを
・form1
・form2
の、どちらか選び
モードレスで表示しようとしているのですが、
起動直後に全て終了してしまいます。

なぜでしょうか?


Sub Main()

Private frm1 As Windows.Forms.Form
Private frm2 As Windows.Forms.Form
frm1 = New form1()
frm2 = New form2()

if 条件 then
frm1.Show()
else
frm2.Show()
end if

End Sub

Show ではなく、
ShowDialogじゃダメなんでしょうか?
Sub Main を抜けるとアプリケーションは終了します。

SH氏の仰るようにShowDialogで表示するとか、
Application.Run()でメッセージループを開始する方法があります。

Sub Main()

Dim frm As Windows.Forms.Form

if 条件 then
frm = New form1
else
frm = New form2
end if
frm.ShowDialog()

End Sub



Sub Main()
If 条件 Then
Application.Run(New form1)
Else
Application.Run(New form2)
End If
End Sub
SHさん。やすしさん。
早速の回答ありがとうございます。

VB6の時は、SUB MAINでフォームを表示(SHOW)後に、
SUB MAINのEND SUBも実行されていたと思うんですが
.netで「ShowDialog」で表示した場合、
END SUBは、実行されないみたいです。

特に問題はないんでしょうか?
フォームを閉じたらちゃんと行きますよ。
2004/07/11(Sun) 03:49:39 編集(投稿者)

■No4539に返信(りょうさんの記事)
> SHさん。やすしさん。
> 早速の回答ありがとうございます。
>
> VB6の時は、SUB MAINでフォームを表示(SHOW)後に、
> SUB MAINのEND SUBも実行されていたと思うんですが
> .netで「ShowDialog」で表示した場合、
> END SUBは、実行されないみたいです。
>
> 特に問題はないんでしょうか?

<MSDNライブラリより引用>
フォームがモーダルで表示されている場合、ダイアログ ボックスを閉じるまで、ShowDialog メソッド以降のコードは実行されません。一方、フォームがモードレスで表示されている場合は、フォームが表示されるとすぐに Show メソッド以降のコードが実行されます。

DOBON.NET | プログラミング道 | プログラミング掲示板