Tin*_*Tin 4 .net c# menu winforms
我正在使用.NET Windows Forms.我的MDI父表单包含菜单.如果单击菜单,将显示表单.到现在为止没问题.
UserForm uf = new UserForm();
uf.Show();
uf.MdiParent = this;
Run Code Online (Sandbox Code Playgroud)
如果我再次单击该菜单,则会创建另一个表单副本.如何解决这个问题?
最简洁的方法是简单地跟踪表单实例的生命周期.通过订阅FormClosed事件来这样做.例如:
private UserForm userFormInstance;
private void showUserForm_Click(object sender, EventArgs e) {
if (userFormInstance != null) {
userFormInstance.WindowState = FormWindowState.Normal;
userFormInstance.Focus();
}
else {
userFormInstance = new UserForm();
userFormInstance.MdiParent = this;
userFormInstance.FormClosed += (o, ea) => userFormInstance = null;
userFormInstance.Show();
}
}
Run Code Online (Sandbox Code Playgroud)