主界面显示不显示不重要,重要的是你是否正确的获得了 用户的登陆信息。比如:我定义了一个 ActiveUser 里面有ActiveUserID,当主界面启动的时候判定ActiveUserID是否有值,如果没值,就弹出登陆界面(FormB) ,如果有值,就不弹出。这样 1、启动的时候,必然没有ID,会弹出FormB让你登陆,半路中要切换用户,只要将ActiveUserID 置空,即可在FormA刷新的时候弹出登陆界面让用户重新登陆。 Private Sub FormA_Activated(sender As Object, e As EventArgs) Handles Me.Activated If ActiveUser.ToString.Length = 0 Then Dim fm As New FormB fm.ShowDialog() End If End Sub 这样,用户重新登陆什么的更方便,当然你也可以在里面将 FormA 的显示关闭。
第一种 创建一个控制台程序作为主程序入口 隐藏控制台窗口 将程序由控制台改成Windows应用程序class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main(string[] args) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); Application.Run(new Form2()); } }第二种 在Form2 InitializeComponent()函数之前用ShowDialog方式打开Form1 public partial class Form2 : Form { public Form2() { Form1 form1 = new Form1(); form1.ShowDialog(); InitializeComponent(); } }
namespace WindowsFormsApplicationTest { static class LoginInfor { static internal string sUser = string.Empty; static internal bool blLoginSucc = false; static internal bool blQuitLogin = false; } static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); while (!LoginInfor.blQuitLogin && !LoginInfor.blLoginSucc) (new frmLogin()).ShowDialog(); if (!LoginInfor.blQuitLogin) Application.Run(new Form1()); } }简单点好……
自己实现ApplicationContext有关ApplicationContext你可以百度“C# ApplicationContext”,这个内容有关算的上“天朝程序员最不常用的c#系列”之一,这玩意从net出生起就有,但是天朝程序员8成都没接触过
If ActiveUser.ToString.Length = 0 Then
Dim fm As New FormB
fm.ShowDialog()
End If
End Sub
这样,用户重新登陆什么的更方便,当然你也可以在里面将 FormA 的显示关闭。
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
Application.Run(new Form2()); }
}第二种 在Form2 InitializeComponent()函数之前用ShowDialog方式打开Form1 public partial class Form2 : Form
{
public Form2()
{
Form1 form1 = new Form1();
form1.ShowDialog();
InitializeComponent();
}
}
{
static class LoginInfor
{
static internal string sUser = string.Empty;
static internal bool blLoginSucc = false;
static internal bool blQuitLogin = false;
} static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
while (!LoginInfor.blQuitLogin && !LoginInfor.blLoginSucc)
(new frmLogin()).ShowDialog();
if (!LoginInfor.blQuitLogin)
Application.Run(new Form1());
}
}简单点好……
不过,form2和form1写反了。
form2是登录窗口,
应该是从form1中用showdialog打开form2,登录正常, 返回值正常,就关闭form2,继续显示form1。
form2中,登录不正常无法关闭,就会一直卡在登录界面。
不过,form2和form1写反了。
form2是登录窗口,
应该是从form1中用showdialog打开form2,登录正常, 返回值正常,就关闭form2,继续显示form1。
form2中,登录不正常无法关闭,就会一直卡在登录界面。
我创建例子的时候把form1和form2创建反了