编写多窗体程序的时候遇到几个纠结的问题求指教
本人编写一个多窗体的程序,其中的一段如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show();
}
}
}
遇到个问题:
当产生form2的时候依然可以看见原先的form窗体,于是加了一句this.Hide();这样开始的窗体是没有了但是关闭form2窗体时,整个程序竟然还在编译。
我希望能通过当前窗口进入form2窗口,并且还能从form2窗口返回到form1窗口,这个该怎么做呢?
------解决方案--------------------把Form1 传过去
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show(this);
}
//****Form2中 声明一个Form1 变量
Form1 form1;
form1=(Form1)this.ower;
然后就可以对form1进行相关操作了...
//我是新手..可能想法不好...相互交流哈
------解决方案--------------------登录窗体切换:http://www.aiiq.net/?p=1444
------解决方案--------------------在新打开的子窗体中的(FormCloseed)关闭事件中,写上Application.Exit();
------解决方案--------------------如果你希望Form2关闭的时候退出程序,就在Form2的FormClosing事件里加入Application.Exit();注册事件你应该会的吧。
如果你希望关闭Form2的时候再显示Form1,就在Form2的FormClosing事件里加入form1.show(),但是这个前提是要把form1通过构造函数传递过来,把Form2的构造函数改成有参数的。
Form2里这样写:
private Form1 form1;
Form2(Form form1)
{
this.form1=form1;
...
}
Form1里这样写:
this.Hide();
Form2 form2=new Form2(this);
form2.Show();