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

C#窗体间通信问题
(C#)在窗体1中创建并打开一个窗体2(不是子窗体),当窗体2关闭时,如何使窗体1也同时关闭?

------解决方案--------------------
Form1.cs

C# code

         private void Form1_Load(object sender, EventArgs e)
         {
            Form2 f2 = new Form2();
            f2.FormClosed += new FormClosedEventHandler(f2_FormClosed);
            f2.Show();

        }

        void f2_FormClosed(object sender, FormClosedEventArgs e)
        {
            this.Dispose();
        }

------解决方案--------------------
创建两个窗体f1 f2

在f1中写如下代码
 public Form1()
{
InitializeComponent();
}
Form2 myfrm;//声明窗体对象
 private void button1_Click(object sender, EventArgs e)
{
myfrm = new Form2();//实例化窗体Form2
myfrm.Show();//显示窗体
myfrm.Controls.Add(this.label1); //将控件添加到窗体Form2中

 }
private void label1_Click(object sender, EventArgs e)
{

this.label1.Text = "关闭窗口";//控件显示的内容
this.Close();
}
------解决方案--------------------
C# code

Application.Exit()

------解决方案--------------------
如果你是想退出整个程序的话,Application.Exit(),当然窗体1也关了,
如果你显示用的是showDiglog的话,就在下一行代码直接窗体1.close
如果你是show的话,将窗体一传给窗体二变量中,在窗体二的colsed事件中关闭窗体1
------解决方案--------------------
还可以
方法一
C# code

            Form2 frm = new Form2();
            frm.ShowDialog();
            this.Close();