我正在开发一个应用程序,其中有一个主要表单和几个可以同时使用的其他表单.当用户点击打开另一个表单时,我想使其单击表单按钮,如果表单已经打开,则不会再次打开表单.
showDialog不会工作,因为用户仍然需要访问主窗体上的控件.
这是我的帮助窗口代码,所有其他表单以相同的方式打开.
private void heToolStripMenuItem_Click(object sender, EventArgs e)
{
Form help = new help();
help.Show();
}
Run Code Online (Sandbox Code Playgroud)
Nat*_*ate 13
或者,您可以使用应用程序的打开表单来查看它是否已打开
btn_LaunchHelp(object o, EventArgs e)
{
foreach (Form f in Application.OpenForms)
{
if (f is HelpForm)
{
f.Focus();
return;
}
}
new help().Show();
}
Run Code Online (Sandbox Code Playgroud)
编辑:为了更清楚,这允许用户随时关闭帮助,并且比保存对"帮助"窗口的引用更容易管理.什么都没有清理,没有什么可以维护的.
mle*_*rle 10
使用单身人士:
class HelpForm : Form
{
private static HelpForm _instance;
public static HelpForm GetInstance()
{
if(_instance == null) _instance = new HelpForm();
return _instance;
}
}
.......
private void heToolStripMenuItem_Click(object sender, EventArgs e)
{
HelpForm form = HelpForm.GetInstance();
if(!form.Visible)
{
form.Show();
}
else
{
form.BringToFront();
}
}
Run Code Online (Sandbox Code Playgroud)