public Form fr;
private void button2_Click(object sender, EventArgs e)
{
fr = Form1.ActiveForm;
fr.Hide();
Form3 fr1 = new Form3(fr);
fr1.Show();
}
问问题
62 次
2 回答
2
您不需要创建Form3
为单例(我认为您不能这样做),但您只需要实例化一次。例如你可以使用这样的东西:
public Form fr;
Form3 fr1 = null;
private void button2_Click(object sender, EventArgs e)
{
fr = Form1.ActiveForm;
fr.Hide();
if(fr1==null)
fr1 = new Form3(fr);
fr1.Show();
}
于 2013-03-14T19:02:24.583 回答
0
不。
不能将单例模式与 UI 组件一起使用,因为 Windows 窗体封装了一个 Win32 hWnd 窗口,最终需要将其释放,并且您无法复活窗口,必须重新创建它,这与单例模式相反。
此外,Windows 窗体设计器需要一个公共默认构造函数。即使您可以使用单例,您每次在设计器中编辑表单时都需要禁用私有构造函数。
假设您的项目没有消费者,一个更好的主意是将您的表单更改为internal
并自己跟踪每个实例化。
于 2013-03-14T19:02:35.980 回答