当前位置:编程学习 > C#/ASP.NET >>

C#GUI编程时怎样操作一个窗口去关闭另一个窗口

RT..

用一个窗口去操作另一个窗口关闭的代码。。。

追问:怎样去查找默认创建第一个窗口的实例名称?

答案:1)如果是一个主窗体与一个副窗体之间传信息,那么可以用构造函数,代码如下: 
窗体1:
namespace WindowsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Form2 aform2; //声明一个FORM2字段

private void button1_Click(object sender, EventArgs e)
{
aform2 = new Form2(this);
//调用重载的FORM2构造函数, 该构造函数设定了form2中的aform1 字段为“this”
aform2.label1.Text = "this is set from form1"; //窗体2中lable1设为公用
aform2.Show();
}
}
}

窗体2:

namespace WindowsApplication2
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private Form1 aform1; //声明FORM1字段
public Form2(Form1 myform1) //重载一个构造函数
{
InitializeComponent();
this.aform1 = myform1; //通过该构造函数,设定aform1字段值
}
private void button1_Click(object sender, EventArgs e)
{
this.aform1.label1.Text = "this is set from2"; //控制form1 form1.label1设为公用
}
}
}
2)如果是一个主窗体与多个副窗体,则应在主窗体的Designer.cs中实例化副窗体,如这样:
public ShiFeiResolution.VegetableForm vegetableform = new VegetableForm();//注意它们是主窗体的属性!!!
public ShiFeiResolution.XiaoMaiYuMiForm XiaoMaiYuMiform = new XiaoMaiYuMiForm();
public ShiFeiResolution.FruitForm fruitForm = new FruitForm();
这样可在主窗体中直接应运。
3)如果是多个主窗体与一个副窗体之间传递信息,比如说点击任何一个主窗体中的按纽,就会弹出同一个副窗体(是同一个,而不是同样的窗体),就要在主窗体中这样写:
GetSoilInfo getinfo; //相当于一个temp变量
getinfo = (GetSoilInfo)Application.OpenForms["GetSoilInfo"];

if (getinfo == null)
getinfo = new GetSoilInfo();//是否存在,如不存在,则创建
if (checkBox2.Checked == true) getinfo.Show();
else (checkBox2.Checked == false)
getinfo.Hide();
窗口实例名称.Close();
需要先得到要关闭窗口的对象,就可以用对象.close()就可以

上一个:[求助]为什C# 列表成员 不能自动显示了啊 - C#编程 -
下一个:求C# Windows编程高手做一个动态时间

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,