方法一:
直接检测是否已经打开此MDI窗体
// 是否已经打开了?(用循环来判断)
foreach (Form childrenForm in this.MdiChildren)
{
//检测是不是当前子窗体名称
if (childrenForm.Name == "子窗体名称")
{
//是的话就是把他显示
childrenForm.Visible = true;
//并激活该窗体
childrenForm.Activate();
return;
}
}
//下面是打开子窗体
Form1 childrenForm = new Form1();
childrenForm.MdiParent = this;
childrenForm.Show();
childrenForm.WindowState = FormWindowState.Maximized;
方法二:
将子窗体设成单件:
namespace WindowsFile
{
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
}
private void Form3_Load(object sender, EventArgs e)
{
richTextBox1.LoadFile(".\\test.txt", RichTextBoxStreamType.PlainText);
}
private static Form3 childform=null;
public static Form3 Form3Signleton()
{
if (childform == null)
{
childform = new Form3();
}
return childform;
}
private void Form3_FormClosing(object sender, FormClosingEventArgs e)
{
try
{
this.Dispose(true);
childform = null;
}
catch(Exception e)
{ MessageBox(e.ToString()); }
}
方法三:
这个没用过,也是直接判断
private static frm_rk frmchild;//定义子窗体
private void 商品入库ToolStripMenuItem_Click(object sender, EventArgs e)//按钮事件
{
frm_rk frmchild = GetForm();
frmchild.Show();
}
private frm_rk GetForm()//判断子窗体状态,防止重复显示
{
if (frmchild == null || frmchild.IsDisposed)
{
frmchild = new frm_rk();
frmchild.MdiParent = this;
}
return frmchild;
}
分享到:
相关推荐
附件中包含一个C#WinForm中父MDI窗体不重复打开子窗体的案例,父窗体在打开子窗体之前先判断子窗体是否存在,若存在则激活;若不存在,实例化并打开子窗体。开发环境:VS2012。
在C# Winform编程中,MDI(Multiple Document Interface)多文档界面是一种常见的窗口布局方式,它允许在一个主窗口中嵌套多个子窗口,每个子窗口可以独立操作,但共享同一菜单栏、工具栏等资源。本文将深入探讨如何...
在C#编程中,父窗口和子窗口之间的控件互操作是常见的需求,尤其是在开发多窗口应用程序时。这种互操作性允许用户在不同窗口间传递数据、触发事件或执行特定功能,增强了用户体验。本文将详细讲解如何在C#中实现这一...
C#中的MDI(Multiple Document Interface)窗口编程是创建多文档应用程序的重要技术,它允许在一个父窗口内同时显示和管理多个子窗口。本教程将深入探讨C#如何实现MDI功能,帮助你全面掌握相关知识。 一、MDI概述 ...
标题中的“C#把MDI子窗体变为标签页面”指的是将原本作为MDI子窗体显示的窗口转换为TabControl中的一个标签页。这种方法可以显著提升用户体验,使用户更容易在不同的子窗口间进行切换。 描述中提到的“利用...
在父窗口中,我们可以通过`ShowDialog()`方法打开子窗口。`ShowDialog()`会阻塞父窗口的执行,直到子窗口关闭。我们可以检查`DialogResult`属性来判断用户是确认还是取消了操作: ```csharp private void ...
根据提供的文件信息,我们可以深入探讨如何在C#中实现多文档界面(MDI)功能,以及如何管理和控制MDI子窗口的行为。 ### MDI简介 MDI(Multiple Document Interface)是一种用户界面设计模式,允许用户同时打开多...
在C#编程环境中,MDI(Multiple Document Interface)是一种设计模式,用于构建支持多个子窗口同时打开的应用程序。MDI形式的应用程序允许用户在一个主窗口内管理多个子窗口,每个子窗口可以显示不同的数据或执行...
在本文中,我们将深入探讨如何使用C#编程语言创建一个具备菜单栏和工具栏的MDI(Multiple Document Interface)窗口。MDI窗口是一种常见的应用程序设计模式,它允许在一个父窗口中同时显示多个子窗口,方便用户同时...
Mdi 子窗口之闪烁问题是经常在 Windows 应用程序中遇到的问题之一。这个问题的解决方法可以从系统绘制过程入手。下面是解决这个问题的思路和方法。 首先,我们需要了解 Mdi 子窗口的绘制过程。在 Windows 中,每个...
### C#中利用委托实现子窗口关闭时通知父窗口执行特定方法 在C#中,事件和委托是非常重要的概念,特别是在处理用户界面交互时。本文将详细介绍如何利用委托(Delegate)来实现在关闭子窗口时通知父窗口执行特定的...
MDI(Multiple Document Interface)是微软Windows操作系统提供的一种用户界面模式,它允许在一个父窗口(主窗口)中同时打开多个子窗口,每个子窗口可以独立显示和编辑不同的文档。在本案例中,“C#实现多文档MDI...
在C#编程环境中,MDI(Multiple Document Interface)应用程序是一种设计模式,允许用户在一个父窗口(主窗体)内同时打开多个子窗口(子窗体)。这种架构常用于那些需要多文档处理或工作空间管理的软件,如文本编辑...
//子窗体不存在,打开子窗体 if (cwExists == false) { parentWindow.IsMdiContainer = true; childrenWindow.MdiParent = parentWindow; childrenWindow.WindowState = System.Windows.Forms.FormWindowState...
MDI技术在C#中通过Windows Forms或WPF框架得以实现,允许开发者创建复杂的用户界面,其中包含可独立工作的多个子窗口。 C# MDI记事本的实现涉及以下知识点: 1. **C#基础**:掌握C#的基本语法、类与对象、控制结构...
在C#编程环境中,MDI(Multiple Document Interface)是一种用于创建多文档应用程序的设计模式,它允许在一个父窗口中同时打开和管理多个子窗口。在Windows Forms(Winform)应用程序中,我们可以利用MDI来实现这样...
在Visual C#中,MDI(Multiple Document Interface)编程允许开发者创建可以同时显示多个子窗口的应用程序,这些子窗口在同一个父窗口内进行管理和布局。MDI被广泛应用于需要同时处理多个相关文档或数据集的软件,如...
通过以上步骤,我们实现了C# Winform MDI窗体的子窗体单个显示和切换功能,避免了重复显示相同子窗体的问题。这种方法代码简洁,易于理解和维护。如果你有任何疑问或需要进一步的帮助,可以通过提供的QQ或邮箱与作者...
- 在C#中,`System.Windows.Forms.Form`类提供了对MDI的支持,通过设置`IsMdiContainer`属性为`true`,一个窗体就可以作为MDI容器,允许其他窗体作为子窗口在其中打开。 2. **创建MDI父窗体** - 创建一个继承自`...
在C#编程中,"父窗口子窗口示例"通常是指在Windows Forms应用程序中创建一个主窗口(父窗口)并在其内部嵌套一个或多个子窗口。这种设计模式广泛应用于多文档界面(MDI,Multiple Document Interface)或者对话框式...