当前位置:首页C# > 正文

使用C#打开新窗口关闭旧窗口的方法;winform中防止重复打开多个相同子窗体

作者:野牛程序员:2024-02-03 09:55:20C#阅读 2219

在C#中,可以使用WinForms来实现打开新窗口并关闭旧窗口的功能,同时也可以防止重复打开多个相同的子窗体。下面是实现这两个功能的基本方法:

using System;
using System.Windows.Forms;

namespace YourNamespace
{
    public partial class MainForm : Form
    {
        private ChildForm childForm = null;

        public MainForm()
        {
            InitializeComponent();
        }

        // 打开子窗体并关闭旧窗体
        private void OpenNewFormButton_Click(object sender, EventArgs e)
        {
            if (childForm == null || childForm.IsDisposed)
            {
                childForm = new ChildForm();
                childForm.FormClosed += ChildForm_FormClosed;
                childForm.Show();
            }
            else
            {
                childForm.Activate(); // 激活已存在的子窗体
            }
        }

        // 关闭旧窗体时清空子窗体引用
        private void ChildForm_FormClosed(object sender, FormClosedEventArgs e)
        {
            childForm = null;
        }
    }

    public partial class ChildForm : Form
    {
        public ChildForm()
        {
            InitializeComponent();
        }
    }
}

在这个例子中,有一个主窗体 MainForm 和一个子窗体 ChildForm。在 MainForm 中,保持了对子窗体的引用 childForm,并且在打开新窗口时检查是否已经有一个子窗体打开。如果没有,创建一个新的子窗体并显示出来;如果已经有一个子窗体打开,则激活已存在的子窗体。当子窗体关闭时,清空对子窗体的引用。

这样可以确保只有一个子窗体实例在运行,防止重复打开多个相同的子窗体。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击