我是C#的新手,并且Windows Form项目有问题。我是 不知道我是否正确执行了此操作?
我在一个显示“无模式对话框”的Windows窗体上有一个“帮助按钮”。 我希望这是无模式的,以便用户可以以主要形式进行工作 并保留“帮助”表单,并在需要时将其最小化。
我要求用户再次按下“帮助按钮”, 只需将“无模式”对话框放回最前面,即使该对话框已最小化也是如此。 我不想创建一个新的“无模式帮助对话框”,并最终得到许多 其中我只想要一个。
我有一个主要形式的全局变量
FormHelp goHelpDialog = null;
“帮助按钮”的处理程序为
private void buttonHelp_Click(object sender, EventArgs e)
{
// If we havent already created a HelpDialog create it and Show() it
// Else just bring it to the front
if (goHelpDialog == null)
{
goHelpDialog = new FormHelp();
// Show goHelpDialog as a modless dialog so dont dispose of a modeless as we want that to stay alive
// Note Dispose() is automatically called when user closes dialog.
goHelpDialog.Show();
}
else
{
if (goHelpDialog.WindowState == FormWindowState.Minimized)
goHelpDialog.WindowState = FormWindowState.Normal;
goHelpDialog.BringToFront();
}
return;
}
如果用户一直按“帮助按钮”,则此方法很好。我的问题是什么时候 用户关闭“无模式帮助对话框”,然后再次按“帮助按钮” 得到一个断言,因为
if (goHelpDialog == null)
不为null。因此,不会创建新的“无模式帮助对话框”。 我认为goHelpDialog没有正确被Dispose()处理? 感谢您的建议。