C# 如何重复调用父窗体中的子窗体

本文介绍了一种在Windows Forms应用中防止同一子窗体重复弹出的方法。通过使用静态变量跟踪子窗体实例,确保了每次点击按钮时只显示一个活动的子窗体,避免了资源浪费和用户体验下降。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当我们在父窗体中点击一个按钮,会出现一个子窗体,又或者当点击另一个标签,也会弹出与之前相同的子窗体。要保证两次点击弹出的是一个窗体,要使用以下的方法,注意弹出窗体的时候不能用ShowDialog方法,必须用Show方法。下边是具体代码。

private static NewForm newForm;  
  
        ///   
        /// 防止子窗口重复出现  
        /// 此处不用ShowDialog,因为那样使父窗口不可用,会有很多限制与不方便;  
        /// 本例关键是定义一个子窗口的全局变量,并作判断  
        ///   
        ///   
        ///   
        private void btnNewForm_Click(object sender, EventArgs e)  
        {  
              
            if (newForm == null || newForm.IsDisposed)  
            {  
                newForm = new NewForm();  
                newForm.Show();  
            }  
            else  
            {  
                newForm.WindowState = FormWindowState.Normal;  
                newForm.Activate();  
            }  
        } 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值