日期:2014-05-18  浏览次数:20921 次

窗体关闭.和省资源问题
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)

------解决方案--------------------
搂主改成这样:
static void Main() 

Application.EnableVisualStyles(); 
Application.SetCompatibleTextRenderingDefault(false); 
Form2 f2 = new Form2(); 
if(f2.ShowDialog()!=DialogResult.OK) 
Application.Exit();
Application.Run(new Form1()); 
}
------解决方案--------------------
在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();