0

2つのフォームがあるアプリケーションがあります。1つは管理者アクセス専用に設計されており、もう1つはユーザーアクセス専用に設計されています。私がやりたいのは、ユーザーが管理者であるかどうかを確認することです。管理者である場合は、管理者フォームをロードのみにします。アプリケーションを起動するユーザーが管理者でない場合は、ユーザーフォームのみをロードします。ユーザーがフォームの作成を終了すると、終了時にアプリケーションを終了します。

ロードするフォームを決定する「ロジック」フォームが必要ですか?ユーザーのアクセスに関係なく、画面にすべてのフォームが表示されるという問題があります。開始時にロードされた前のまたは最初のWinFormに対してWinFormを完全に制御するにはどうすればよいですか?画面には一度に1つのフォームしか表示されません。

4

2 に答える 2

0

アプリケーションの存続期間中に1つのフォームのみが表示される場合は、次のように、Application.Runを呼び出す前に、ユーザーが管理者であるかどうかを判断できます。

If userIsAdmin Then
    Application.Run(New frmAdmin())
Else
    Application.Run(New frmMain())
End If
于 2013-03-14T16:36:03.570 に答える
0

プロジェクトの[アプリケーションフレームワークを有効にする]オプションをオフにし、スタートアップオブジェクトをサブメインに設定すると、新しいモジュールを作成して、コードをサブメイン内に配置できます。

Module Main
    Public Sub Main()
        Dim userIsAdmin As Boolean
        ' do your check here
        If userIsAdmin Then
            Application.Run(New frmAdmin())
        Else
            Application.Run(New frmMain())
        End If
    End Sub
End Module

詳細については、こちらをご覧ください。

http://visualstudiomagazine.com/articles/2007/10/01/enable-the-application-framework-in-vb.aspx

于 2013-03-14T20:05:50.040 に答える