所以我有这个程序,我想防止它多次打开,但似乎无法解决它= /
private void button1_Click(object sender, EventArgs e)
{
if (forge.Checked)
{
successfully_injected openForm = new successfully_injected();
openForm.Show();
this.Close();
}
else if (!forge.Checked)
{
select_option openForm = new select_option();
openForm.Show();
}
}
我只希望能够单击一次按钮,然后它停止显示更多窗口,但是我现在得到的结果是我可以单击它,并且每次单击都会保持打开窗口的状态,所以== /
答案 0 :(得分:0)
您可以检查Application对象中的集合OpenForms
if(forge.Checked)
{
successfully_injected openForm = Application.OpenForms.OfType<successfully_injected>().FirstOrDefault();
if(openForm == null)
openForm = new successfully_injected();
openForm.Show();
}
else
{
select_option openForm = Application.OpenForms.OfType<select_option>().FirstOrDefault();
if(openForm == null)
openForm = new select_option();
openForm.Show();
}
this.Close();
答案 1 :(得分:0)
您应将主表单定义为Singleton。这样,在整个应用程序中只有一个实例可用,因此还可以防止出现多种形式。
一个很好的例子可以在与您的here类似的另一个问题中找到。
答案 2 :(得分:0)
将所有者移至新窗口
successfully_injected openForm = new successfully_injected();
Owner = openForm;
Hide();
openForm.Show();
现在新窗口有了所有者,您只需关闭它即可使用