实现弹出窗体对象的单例模式  结合泛型后,可以用于所有窗体的弹出操作

    public class BaseFrm<T> where T : Form, new()
{
//定义一个静态的,私有的类型变量,
private static T t;
//程序运行时创建一个静态只读的进程辅助对象:因为要加锁时,实例有没有被创建出来,(有没有被创建过实例)还不知道。
private static readonly object syncRoot = new object();
//将构造函数做成私有的,防止此工具窗体在其它地方被实例化 public static T GetInstance()
{
if (t == null || t.IsDisposed)//先判断实例是否被创建,不存在则再加锁处理
{
lock (syncRoot)//在同一个时刻加了锁的那部分程序只有一个线程可以进入(但是如果每次还没有确定,是否已经有实例就去加锁,很浪费资源)
{
if (t == null || t.IsDisposed)//单纯的这样无法解决多线程程序中,多个线程同时访问这个类的情况
{
t = new T();
//OrderBookFrm.MdiParent = StuMainFrm.ActiveForm;//获取应用程序的当前活动窗体
}
}
}
return t;
}
}

winform窗体对象 单例模式与泛型结合的更多相关文章

  1. C#基础(WinForm窗体的单例模式,避免窗体被实例化多次)

    在MDI窗体中使用单例模式可以有效的避免同个窗体被实例化多次 [csharp] view plain copy   //==============字窗体的修改================  // ...

  2. Winform 窗体单例

    有窗体Form1和窗体Form2,单击Form1上按钮,只弹出一个Form2. Form2里自定义一个方法,里面判断是否弹出Form2,没有时弹出Form2. public static Form2 ...

  3. 单例模式(Winform窗体的实现)

    在我的设计模式分类当中,我选择单例模式作为我第一个要写的设计模式,其一,单例模式简单.容易理解让人接受,其二,单例模式很常用,在实际的Winform窗体应用开发中能够带来更好的客户体验. 单例模式的核 ...

  4. winform窗体继承泛型类时,设计器无法使用解决办法

    当我们使用winform程序时,winform窗体程序和控件程序都是可以通过设计器进行控件拖拽的,但如果我们继承了一个带有泛型的form基类.那么设计器是无法使用的. 目前我没有找到根本解决的办法,但 ...

  5. WinForm 窗体属性 窗体美化

    WinForm是·Net开发平台中对Windows Form的一种称谓. Windows窗体的一些重要特点如下: 功能强大:Windows窗体可用于设计窗体和可视控件,以创建丰富的基于Windows的 ...

  6. winform窗体控件(全)

    回顾跟补充下除了昨天那常用6个其他的winform窗体控件作用 1:Button:按钮 (1)AutoSize:如果是True的情况下,内容将会撑开:False的话会另起一行 (2)Enabled: ...

  7. C# winform窗体设计-通过条件查询数据

    在winform 数据库设计中,有时候需要通过条件查询对应的数据,并且将数据显示在文本框(or 富文本框)中,下面,小编将讲述通过一个条件: 首先,我们需要对数据库建立连接,并且执行数据库命令,在此之 ...

  8. 客户端(Winform窗体)上传文件到服务器(web窗体)简单例子

    客户端:先创建一个winform窗体的应用程序项目 项目结构

  9. Winform窗体实现简单的二维码生成和保存

    二维码的生成需要用到二维码生成的类库,ThoughtWorks.QRCode.dll 步骤: 第一步:下载二维码生成类库,ThoughtWorks.QRCode.dll 第二步:新建winform项目 ...

随机推荐

  1. HTTP状态码的意义

    100系列码 从100到199范围的HTTP状态码是信息报告码.基于各种原因考虑,大多数情况下我们是 很少看见这些代码的.首先,如果一个浏览器尝试访问一个网站,而网站返回这些代码时,它们往往都不会显示 ...

  2. Spring整合Hibernate笔记

    1. Spring 指定datasource a) 参考文档,找dbcp.BasicDataSource i. c3p0 ii. dbcp <bean id="dataSource&q ...

  3. 继承control的自定义TextBox

    继承control的自定义TextBox 下面来介绍一下本人写的一个自定义的textbox,首先说一下写这个控件遇到的几个难点:第一.关联输入法:第二.画字符串和焦点线 先随便上两张效果图吧: 下面这 ...

  4. jQuery的MP3、视频播放器jPlayer

    jplayer是一个纯代码的html5音乐.视频播放器. 支持单个.多个音乐或视频播放,支持各种主流的媒体文件. 使用方法: 1.提供json参数 [ { "title": &qu ...

  5. Windows应用商店API

    Windows应用商店API 动手实验 实验 8: Windows应用商店API 2012年9月 简介 编写Windows应用商店应用最令人瞩目的理由之一是您可以方便地将它们发布到Windows应用商 ...

  6. 分享一个javascript alert精简框架

    如果你不喜欢浏览器自带的alert你可以尝试总共不超过10KB somke js  下载地址:http://smoke-js.com/ 使用方法 somke.alert("hello wor ...

  7. 刨根问底儿 -- intVal($str) 跟 (int) $str 的运算结果有什么区别

    intVal($str) 跟 (int) $str 都是把其他类型的变量转化为int型变量的方式,这么多年来我一直森森滴怀疑它们的运算结果在某些条件下会有区别.对于我的疑问,文档里也没有多说(或者我没 ...

  8. vps使用(centos)

    javaweb开发,vps来做个人测试 首先配置vps(centos) 1.安装javeweb环境 用ssh远程服务器后,中文乱码,因为ssh的字符集和服务器的字符集不一致,服务器是utf-8,可以通 ...

  9. Java基础知识拾遗(一)

    Java Threads 1. 创建线程的三种方法? 继承Thread类: 实现Runnable接口: 使用Executor框架创建一个线程池. 每个线程都有优先级(Thread.MAX_PRIORI ...

  10. AxeSlide软件项目梳理

    先介绍一下我负责的软件项目 AxeSlide斧子演示,估计大部分人没有听说过,但国外有一款叫Prezi的软件,应该有一部分人使用过. 这是我们产品的官网http://www.axeslide.com/ ...