Winform-单例模式-同一个窗口值打开一次

在Winform应用程序中,使用常规方式可能会导致同一窗口多次打开,如QQ登录窗口的情况。为解决此问题,可以采用单例模式来确保窗口只被打开一次。具体实现是在Form2中定义一个静态字段和静态方法,通过静态方法创建并显示Form2的实例,防止多次实例化。

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

1。在winform应用中,一个窗体打开另一个窗体,用以下方式打开会打开多个窗口,像qq一样会打开多个登陆窗口,有时应用中只打开一个

Form2 form=new Form2();

form.Show();


方法就是在在Form2中创建一个静态字段和一个静态方法,用方法来创建Form2的实例

public partial class Form2 : Form
   {
       public static Form2 SingleForm=null;
       public Form2()
       {
           InitializeComponent();
       }
       public static  Form2  GetSingle()
       {
           if (SingleForm == null || SingleForm.IsDisposed)
           {
               SingleForm = new Form2();
           }
           return SingleForm;
       }
   }
Form1中调用,这样只会打开一个窗口了

private void button1_Click(object senderEventArgs e)
       {
           Form2 item = Form2.GetSingle();
           if(!item.IsDisposed)
             item.Show();
       }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值