C#学习教程:以MDI格式多次防止同一子窗口分享


以MDI格式多次防止同一子窗口

我正在使用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(); ... } 

也许这可以帮助你:

 public static bool formOpened = false; // it is global boolean Form2 instance; 

当您打开表单时:

 if(formOpened == false) { instance = new Form2(); instance.Show(); formOpened = true; } else { instance.Focus(); } 

还有一件事是在关闭Form2之后,你应该将formOpened的值设置为false;

上述就是C#学习教程:以MDI格式多次防止同一子窗口分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1031602.html

(0)
上一篇 2022年1月14日 上午1:08
下一篇 2022年1月14日 上午1:10

精彩推荐

发表回复

您的电子邮箱地址不会被公开。