我正在开发 C# 桌面应用程序,在 MDI 窗体中,当您单击菜单时会打开同一个子窗口,同时显示该窗口的第一个实例。 如何防止 MDI 窗体中出现这些子窗口的多个实例?
最佳答案
您可以检查表单是否已经打开:
Form instance = null;
// Looking for MyForm among all opened forms
foreach (Form form in Application.OpenForms)
if (form is MyForm) {
instance = form;
break;
}
if (Object.ReferenceEquals(null, instance)) {
// No opened form, lets create it and show up:
instance = new MyForm();
instance.Show();
...
}
else {
// MyForm has been already opened
// Lets bring it to front, focus, restore it sizes (if minimized)
if (instance.WindowState == FormWindowState.Minimized)
instance.WindowState = FormWindowState.Normal;
instance.BringToFront();
if (instance.CanFocus)
instance.Focus();
...
}
关于c# - 以 MDI 形式多次防止同一个子窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17378807/