具体如何实现半夜发帖求助

解决方案 »

  1.   

    方法很多,可能最符合实践的方式是
    自己实现ApplicationContext有关ApplicationContext你可以百度“C# ApplicationContext”,这个内容有关算的上“天朝程序员最不常用的c#系列”之一,这玩意从net出生起就有,但是天朝程序员8成都没接触过
      

  2.   

    主界面显示不显示不重要,重要的是你是否正确的获得了 用户的登陆信息。比如:我定义了一个 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 的显示关闭。
      

  3.   

    第一种 创建一个控制台程序作为主程序入口 隐藏控制台窗口 将程序由控制台改成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();
            }
        }
      

  4.   

    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());
            }
        }简单点好……
      

  5.   

    第二种办法,简单、直接、干脆。
    不过,form2和form1写反了。
    form2是登录窗口,
    应该是从form1中用showdialog打开form2,登录正常, 返回值正常,就关闭form2,继续显示form1。
    form2中,登录不正常无法关闭,就会一直卡在登录界面。
      

  6.   

    第二种办法,简单、直接、干脆。
    不过,form2和form1写反了。
    form2是登录窗口,
    应该是从form1中用showdialog打开form2,登录正常, 返回值正常,就关闭form2,继续显示form1。
    form2中,登录不正常无法关闭,就会一直卡在登录界面。
    我创建例子的时候把form1和form2创建反了