窗口关闭问题,急 我程序中创建一个窗口TOPWIN.CS ,再创建一个窗口FORM.cs,在FORM.cs中我想关闭窗口TOPWIN,应该怎么关闭?两个窗口是相互独立的。谢谢在FORM.cs中用this.close()是关闭FORM.cs的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 将topwin窗口句柄传递给form,然后在form里调用这个句柄的close方法不就关闭了? A窗口要拿到B窗口的对象然后A里面执行B的CLOSE() 使用event。写个事件类。B中注册。(事件执行函数中写上关闭当前窗体的方法)A中调用事件类中的触发事件的方法。事件使用参见:http://topic.csdn.net/u/20090609/11/9b5d4506-95e2-4677-a7cf-ee75c6e68140.html?95662 foreach(form a in application.openForms){ if (a.FormName=="XXXXX"){ a.close();}} A窗口要拿到B窗口的对象 然后A里面执行B的CLOSE()能说详细点吗?A窗口怎么拿到B窗口的对象?比如main()中topwin abc=new topwin();abc.show();form ww=new form();ww.show();怎么在form中取得topwin的对象abc啊? ----------------------还有,将topwin窗口句柄传递给form,然后在form里调用这个句柄的close方法不就关闭了? 能说详细点吗?最好有点代码.呵呵,谢谢了 在Form里寫TOPWIN t = (TOPWIN)(Application.OpenForms["TOPWIN"]);t.Close(); 将topwin窗口句柄传递给form,然后在form里调用这个句柄的close方法不就关闭了?TOPWIN t = (TOPWIN)(Application.OpenForms["TOPWIN"]); t.Close();参考 要保证Main函数不在你的TopWin类里。至于怎么在From类中得到TopWin的对象有很多方法,最简单的是将TopWin的对象声明为静态的,这样就能在其他地方直接访问的(注:该方法安全性不高)写控制类是比较好的方法 FORM.cs 中创建一个公共属性 private void button3_Click(object sender, EventArgs e) { f.Close(); } private Form f; public Form Fo { get { return f; } set { f = value; } }Main窗体中topwin abc=new topwin(); abc.show(); form ww=new form(); ww.Fo = abc; //把topwin 给属性Foww.show(); C#不支持全局变量, 所以必须把TOPWIN窗体的引用传递到FORM窗体中。 在FORM中定义一个TOPWIN frm;变量用来保存这个引用,然后再调用frm.Close();来关闭。这和delphi,vb里面可以直接访问窗体是不同的。 private void Close_Click(object sender, EventArgs e) { Form f1 = Application.OpenForms["topwin"]; f1.Close(); //OK 可以的 } foreach(form b in application.openForms){if(b.formName="指定的form"){b.close();}} 调用自定义消息的SendMessage API函数 请问怎样在文件指定位置处插入字节? 关于c#调用c++的dll的问题 如何通过菜单名设置菜单属性 C# listview的问题 没分了 帮我看看正则表达式这么写 已经发了3次了 自动最小化 如何让IE或WebBrowser窗口内自动打开word文件? 问一下程序员和软件开发工程师有区别吗? 关于Socket问题,紧急求救! 请问各位哪里可以下载到vb.net 啊?来者有分! 错别字改正系统或者软件 请教C#模拟POST方式登陆的问题
B中注册。(事件执行函数中写上关闭当前窗体的方法)
A中调用事件类中的触发事件的方法。事件使用参见:http://topic.csdn.net/u/20090609/11/9b5d4506-95e2-4677-a7cf-ee75c6e68140.html?95662
{
if (a.FormName=="XXXXX")
{
a.close();
}
}
然后A里面执行B的CLOSE()能说详细点吗?A窗口怎么拿到B窗口的对象?比如
main()中
topwin abc=new topwin();
abc.show();
form ww=new form();
ww.show();
怎么在form中取得topwin的对象abc啊?
----------------------
还有,
将topwin窗口句柄传递给form,然后在form里调用这个句柄的close方法不就关闭了? 能说详细点吗?最好有点代码.呵呵,谢谢了
TOPWIN t = (TOPWIN)(Application.OpenForms["TOPWIN"]);
t.Close();
TOPWIN t = (TOPWIN)(Application.OpenForms["TOPWIN"]);
t.Close();
参考
至于怎么在From类中得到TopWin的对象有很多方法,最简单的是将TopWin的对象声明为静态的,这样就能在其他地方直接访问的(注:该方法安全性不高)写控制类是比较好的方法
private void button3_Click(object sender, EventArgs e)
{
f.Close();
} private Form f;
public Form Fo
{
get { return f; }
set { f = value; }
}
Main窗体中
topwin abc=new topwin();
abc.show();
form ww=new form();
ww.Fo = abc; //把topwin 给属性Fo
ww.show();
private void Close_Click(object sender, EventArgs e)
{
Form f1 = Application.OpenForms["topwin"];
f1.Close(); //OK 可以的
}
foreach(form b in application.openForms)
{
if(b.formName="指定的form")
{
b.close();
}
}