`

C#中避免相同MDI子窗口重复打开的方法(转)

    博客分类:
  • C#
 
阅读更多

方法一:
  直接检测是否已经打开此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窗体不重复打开子窗体

    附件中包含一个C#WinForm中父MDI窗体不重复打开子窗体的案例,父窗体在打开子窗体之前先判断子窗体是否存在,若存在则激活;若不存在,实例化并打开子窗体。开发环境:VS2012。

    C# Winform在MDI中打开一个子窗体关闭上一个子窗体

    在C# Winform编程中,MDI(Multiple Document Interface)多文档界面是一种常见的窗口布局方式,它允许在一个主窗口中嵌套多个子窗口,每个子窗口可以独立操作,但共享同一菜单栏、工具栏等资源。本文将深入探讨如何...

    C#中父窗口和子窗口之间实现控件互操作

    在C#编程中,父窗口和子窗口之间的控件互操作是常见的需求,尤其是在开发多窗口应用程序时。这种互操作性允许用户在不同窗口间传递数据、触发事件或执行特定功能,增强了用户体验。本文将详细讲解如何在C#中实现这一...

    c#mDI窗口编程教学

    C#中的MDI(Multiple Document Interface)窗口编程是创建多文档应用程序的重要技术,它允许在一个父窗口内同时显示和管理多个子窗口。本教程将深入探讨C#如何实现MDI功能,帮助你全面掌握相关知识。 一、MDI概述 ...

    C#把MDI子窗体变为标签页面(不改写任何控件)

    标题中的“C#把MDI子窗体变为标签页面”指的是将原本作为MDI子窗体显示的窗口转换为TabControl中的一个标签页。这种方法可以显著提升用户体验,使用户更容易在不同的子窗口间进行切换。 描述中提到的“利用...

    C#WinForm获取子窗口返回值

    在父窗口中,我们可以通过`ShowDialog()`方法打开子窗口。`ShowDialog()`会阻塞父窗口的执行,直到子窗口关闭。我们可以检查`DialogResult`属性来判断用户是确认还是取消了操作: ```csharp private void ...

    c#实现MDI窗体

    根据提供的文件信息,我们可以深入探讨如何在C#中实现多文档界面(MDI)功能,以及如何管理和控制MDI子窗口的行为。 ### MDI简介 MDI(Multiple Document Interface)是一种用户界面设计模式,允许用户同时打开多...

    C# MDI form多窗口模式的实现

    在C#编程环境中,MDI(Multiple Document Interface)是一种设计模式,用于构建支持多个子窗口同时打开的应用程序。MDI形式的应用程序允许用户在一个主窗口内管理多个子窗口,每个子窗口可以显示不同的数据或执行...

    用c#制作具有菜单栏和工具栏的MDI窗口

    在本文中,我们将深入探讨如何使用C#编程语言创建一个具备菜单栏和工具栏的MDI(Multiple Document Interface)窗口。MDI窗口是一种常见的应用程序设计模式,它允许在一个父窗口中同时显示多个子窗口,方便用户同时...

    Mdi子窗口之闪烁问题的解决

    Mdi 子窗口之闪烁问题是经常在 Windows 应用程序中遇到的问题之一。这个问题的解决方法可以从系统绘制过程入手。下面是解决这个问题的思路和方法。 首先,我们需要了解 Mdi 子窗口的绘制过程。在 Windows 中,每个...

    c#利用委托来实现关闭子窗口通知父窗口执行方法

    ### C#中利用委托实现子窗口关闭时通知父窗口执行特定方法 在C#中,事件和委托是非常重要的概念,特别是在处理用户界面交互时。本文将详细介绍如何利用委托(Delegate)来实现在关闭子窗口时通知父窗口执行特定的...

    C#实现多文档MDI例子

    MDI(Multiple Document Interface)是微软Windows操作系统提供的一种用户界面模式,它允许在一个父窗口(主窗口)中同时打开多个子窗口,每个子窗口可以独立显示和编辑不同的文档。在本案例中,“C#实现多文档MDI...

    C#创建简单的MDI应用程序

    在C#编程环境中,MDI(Multiple Document Interface)应用程序是一种设计模式,允许用户在一个父窗口(主窗体)内同时打开多个子窗口(子窗体)。这种架构常用于那些需要多文档处理或工作空间管理的软件,如文本编辑...

    c# 防止 打开 重复子窗体

    //子窗体不存在,打开子窗体 if (cwExists == false) { parentWindow.IsMdiContainer = true; childrenWindow.MdiParent = parentWindow; childrenWindow.WindowState = System.Windows.Forms.FormWindowState...

    C#MDI记事本,多窗口

    MDI技术在C#中通过Windows Forms或WPF框架得以实现,允许开发者创建复杂的用户界面,其中包含可独立工作的多个子窗口。 C# MDI记事本的实现涉及以下知识点: 1. **C#基础**:掌握C#的基本语法、类与对象、控制结构...

    C#MDI多窗体及选项卡程序

    在C#编程环境中,MDI(Multiple Document Interface)是一种用于创建多文档应用程序的设计模式,它允许在一个父窗口中同时打开和管理多个子窗口。在Windows Forms(Winform)应用程序中,我们可以利用MDI来实现这样...

    Visual C# 中的MDI编程

    在Visual C#中,MDI(Multiple Document Interface)编程允许开发者创建可以同时显示多个子窗口的应用程序,这些子窗口在同一个父窗口内进行管理和布局。MDI被广泛应用于需要同时处理多个相关文档或数据集的软件,如...

    C#-Winform-MDI窗体子窗体不重复显示

    通过以上步骤,我们实现了C# Winform MDI窗体的子窗体单个显示和切换功能,避免了重复显示相同子窗体的问题。这种方法代码简洁,易于理解和维护。如果你有任何疑问或需要进一步的帮助,可以通过提供的QQ或邮箱与作者...

    Visual C#中的MDI编程.rar_C#MDI_MDI_MDIFormApp C#开发_c# MDI

    - 在C#中,`System.Windows.Forms.Form`类提供了对MDI的支持,通过设置`IsMdiContainer`属性为`true`,一个窗体就可以作为MDI容器,允许其他窗体作为子窗口在其中打开。 2. **创建MDI父窗体** - 创建一个继承自`...

    C#父窗口子窗口示例

    在C#编程中,"父窗口子窗口示例"通常是指在Windows Forms应用程序中创建一个主窗口(父窗口)并在其内部嵌套一个或多个子窗口。这种设计模式广泛应用于多文档界面(MDI,Multiple Document Interface)或者对话框式...

Global site tag (gtag.js) - Google Analytics