首页 > 编程语言 >c# Winform 防止重复打开同一窗体

c# Winform 防止重复打开同一窗体

时间:2023-06-09 12:22:17浏览次数:42  
标签:F1 null c# Form1 form1 窗体 new 打开 Winform

 

方式一,

 foreach (Form frm in Application.OpenForms)
 {
    if (frm is form1)
    {
       form1.Activate();
       form1.WindowState = FormWindowState.Normal;
       return;
     }
 }
 Form1 form1 = new Form1();
 form1.Show();

 

方式二,

Form1 F1 ;
 
if(F1 == null || F1.IsDisposed)
{
   F1 = new Form1();
   F1.Show();//未打开,直接打开。
}
else
{
   F1.Activate();//已打开,获得焦点,置顶。
}

 

方式三,

public class GenericSingleton<T> where T : Form, new()
        {
            private static T t = null;
            public static T CreateInstrance()
            {
                if (t == null || t.IsDisposed)
                {
                    t = new T();
                }
                else
                {
                    t.Activate(); //如果已经打开过就让其获得焦点  
                    t.WindowState = FormWindowState.Normal;//使Form恢复正常窗体大小
                }
                return t;
            }
        } 
Form2 form2 = GenericSingleton<Form2>.CreateInstrance();
form2.Show();

 

标签:F1,null,c#,Form1,form1,窗体,new,打开,Winform
From: https://www.cnblogs.com/qingjiawen/p/17468925.html

相关文章

  • Delphi 移动窗体
    移动窗体使用非标题栏移动窗体(在窗体中增加私有方法,如下)procedureTForm1.WMNCHitTest(varMsg:TWMNCHitTest);beginDefaultHandler(msg);ifMsg.Result=HTCLIENTthenMsg.Result:=HTCAPTION;end;方法2procedureTForm1.FormMouseMove(Sender:TObject......
  • [spring-boot] 源码解读#org.springframework.boot.ApplicationArguments [转发]
    1ApplicationArguments概述1.1简述org.springframework.boot.ApplicationArguments接口提供对用于运行org.springframework.boot.SpringApplication的参数访问。ApplicationArguments接口只有一个实现类DefaultApplicationArguments。1.2使用示例示例1@SpringBootA......
  • [AGC055B] ABC Supremacy 题解
    [AGC055B]ABCSupremacy题解题目描述给定两个长度为 \(n\) 的字符串 \(a\),\(b\)。你可以进行若干次以下操作:若 \(a\) 中的一个子串为 ABC,BCA 或 CAB,那么可以将这个子串替换为 ABC,BCA 或 CAB。求能否将 \(a\) 变成 \(b\),输出 YES 或 NO。解析不难发现,......
  • Javascript中的内置对象
    在js学习中的有三种对象:1、内置对象--系统构造函数创建的对象;2、自定义对象--自定义构造函数创建的对象;3、浏览器对象---BOM对象;常用的内置对象:算术对象---Math();字符串对象---String();日期对象---Date();数组对象---Array();1、算术对象Math()Math对象......
  • rust rocket读取自定义配置
    Rocket.toml[default.app]meili_url="http://host:port/"meili_master_key="key"main.rs#[derive(Serialize,Deserialize,Clone)]#[serde(crate="rocket::serde")]structAppConfig{ meili_url:String, meili_master_key:......
  • python操作excel之 openpyxl
    python操作excel在我们的工作中经常会用到,操作用例读取对应信息进行接口自动化pythonExcel库对比图片我们发现可以操作excel的库有很多种,我们常用的就三种方法第三方库xlwt/xlrd:用于生成和读取比较老的excel文件,比如xls格式,最大行数限制为65536行。其中xlrd是读excel,xlwt是写exc......
  • chrome 跨域问题解决
    1.后端设置了跨域,https下可以,http不可以高版本chrome配置了策略,如果访问私有网络,会出现禁止跨域chrome://flags/#block-insecure-private-network-requestsBlockinsecureprivatenetworkrequests.......
  • pandas.errors.ParserError: Error tokenizing data. C error: Expected 9 fields in
    用pandas读取csv格式文件时,里面有的行比前面的行多出好多列,会报下面的错df=pd.read_csv(file_name_csv,encoding="GBK")File"pandas\_libs\parsers.pyx",line905,inpandas._libs.parsers.TextReader._tokenize_rowsFile"pandas\_libs\parsers.pyx",line......
  • ChatGTP:没人比我更懂诗歌
    它居然能理解诗?太厉害了!!无语凝噎  ---------01--------01---------------10-------------1------------01----------------0---------------11------------------01--------------00-------------01--------01---------------10-------------1------------01---------------......
  • 深入解析React DnD拖拽原理,轻松掌握拖放技巧!
    我们是袋鼠云数栈UED团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。。本文作者:霁明一、背景1、业务背景业务中会有一些需要实现拖拽的场景,尤其是偏视觉方向以及移动端较多。拖拽在一定程度上能让交互更加便捷,能......