using System;
using System.Collections.Generic;
using System.Windows.Forms;namespace My_text2_SQL
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Form2 f2 = new Form2();
            f2.ShowDialog();
            Application.Run(new Form1());
        }
    }
}form2是登陆窗体./当登陆失败或点窗体的最大化旁边的关闭或点我在窗体的button1关闭时都不弹出主窗体(form1).
我不想把窗体2设置为透明.这样耗资源.我想用this.close()来关闭
目的:当点任何的关闭时或登陆失败时都不弹出主窗体(form1)

解决方案 »

  1.   

    搂主改成这样:
            static void Main() 
            { 
                Application.EnableVisualStyles(); 
                Application.SetCompatibleTextRenderingDefault(false); 
                Form2 f2 = new Form2(); 
                if(f2.ShowDialog()!=DialogResult.OK) 
                   Application.Exit();
                Application.Run(new Form1()); 
            } 
      

  2.   

    前提是搂主在登录成功后,也就是在登录对话框中的确定按钮的单击事件里如果登录成功,需要设置this.DialogResult = DialogResult.OK;
      

  3.   

    在frmlogin的代码加一个带参数的构造函数
    frmLogin中如下:
             public frmlogin(Form mian)
            {
                this._mainform = mian;
                InitializeComponent();
      
            public Form MainForm
            {
                set { _mainform = value; }
                get { return _mainform; }
            }private void btn_Login_Click(object sender, EventArgs e)
            {
                if(登录成功)
        {
                MainForm.Show();
                this.Close();
    }
               
            }
    主窗体中:
                frmlogin f2 = new frmlogin(); 
                f2.ShowDialog(); 
      

  4.   

    主窗体中: 
                frmlogin f2 = new frmlogin(this); 
                f2.ShowDialog(); 上面打错了
      

  5.   

    搂主改成这样: 
            static void Main() 
            { 
                Application.EnableVisualStyles(); 
                Application.SetCompatibleTextRenderingDefault(false); 
                Form2 f2 = new Form2(); 
                if(f2.ShowDialog()!=DialogResult.OK) 
                  Application.Exit(); 
                Application.Run(new Form1()); 
            } 
    这样好像不行
    一般都是Fibona 说的了
    这个问题好 顶一下了