我正在尝试按下按钮
打开一个新的窗口表单在主程序的构造函数中,我得到了:
form_targeting = new Targeting();
在button1_Click(...)中有:
form_targeting.Show();
和ofc在主程序的字段中有
public static Targeting form_targeting;
第一次打开时,它可以正常工作。关闭第二个窗口并再次按下第一个窗口中的按钮后,我收到错误:
无法访问已处置的对象。对象名称:'定位'。
我已将其添加到Targeting类中,但它仍然不起作用:
private void Targeting_FormClosing(Object sender, FormClosingEventArgs e)
{
this.Hide();
e.Cancel = true;
}
它现在有效,我必须完全相同但使用设计师:p 谢谢你们:)
答案 0 :(得分:2)
将代码放入按钮点击事件。
button1_Click(...)
{
form_targeting = new Targeting();
form_targeting.Show();
}
以
结束关闭表格form_targeting.Close();
答案 1 :(得分:1)
关闭表单会在其上调用Dispose
。您需要为FormClosing事件编写处理程序。在该事件处理程序中,在表单实例上调用Hide
并设置e.Cancel = true
,以便表单不会关闭。
答案 2 :(得分:1)
以下代码表示您正在初始化Targeting的实例。
form_targeting = new Targeting();
使用以下代码form_targeting.Show();
显示表单后,单击十字按钮或以任何方式关闭表单。以第一种形式初始化为form_targeting变量的内存将被释放。
所以第二次,你尝试打开相同的表单,它会引发错误。