2007年5月28日月曜日

.NET SubMainからログイン画面を表示する。

Application.Runメソッドのパラメータに指定されたフォームが閉じられると、アプリケーションは終了します。同様に、Application.RunメソッドのパラメータにApplicationContextを指定すると、そのMainFormプロパティに指定されたフォームが閉じられた時に、アプリケーションが終了します。よって、ApplicationContext.MainFormに指定されているフォームが閉じられる時に、つぎに開くフォームをApplicationContext.MainFormに指定すれば、メインフォームを次々と入れ替えて表示することができます。


Public Class Main


 

    Private Shared _MainApplicationContext As ApplicationContext


 

    'アプリケーションエントリーポイント

    Public Shared Sub Main()


 

        'アプリケーションコンテキストオブジェクトを作成します。

        _MainApplicationContext = New ApplicationContext


 

        'XPスタイルに設定します。

        Application.EnableVisualStyles()


 

        'ログイン画面をを表示します。

        Dim frmLogin As New LoginForm

        AddHandler frmLogin.FormClosed, AddressOf frmLogin_FormClosed

        p_MainApplicationContext.MainForm = frmLogin

        Application.Run(_MainApplicationContext)


 

    End Sub


 

    'ログイン画面を閉じた時の処理です。

    Private Shared Sub frmLogin_FormClosed(ByVal sender As ObjectByVal e As FormClosedEventArgs)

        'メインメニューを表示します。

        If CType(sender, Form).DialogResult = DialogResult.OK Then

            Dim frmMainMenu As New MainMenu

            _MainApplicationContext.MainForm = frmMainMenu

            frmMainMenu.Show()

        End If

    End Sub

    

End Class

0 件のコメント: