欢迎光临

木子屋

标题: WinForm调用主窗体Close方法失败：从不是创建控件的线程访问它

作者: dnawo

日期: 2014-07-18 01:00 PM

分类: Win编程

内容: 事情是这样子的：在主窗体点击按钮打开了窗体B，我希望关闭窗体B时关闭整个应用程序，首先想到的一个方案是在窗体B的FormClosed事件中调用主窗体的Close方法，结果不可行。
主窗体程序：
复制内容到剪贴板 程序代码public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
(new Form2()).Show(this);
}
}
窗体B程序：
复制内容到剪贴板 程序代码public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
Form1 frm = this.Owner as Form1;
if (frm != null)
{
frm.Close();
}
}
}
执行出错，提示：从不是创建控件“button1”的线程访问它：
解决方法
窗体B改用Application.Exit方法关闭应用程序，问题解决：
复制内容到剪贴板 程序代码private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
Application.Exit();
}

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.818 ms

返回

标题: WinForm调用主窗体Close方法失败：从不是创建控件的线程访问它

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.818 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.850 ms

返回