• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#实现只运行单个实例应用程序的方法(使用VB.Net的IsSingleInstance)

C#实现只运行单个实例应用程序的方法(使用VB.Net的IsSingleInstance)

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#实现文件下载实例,c#窗体应用程序实例,c#串口通信实例,c#项目开发实例,c#socket通信实例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

从 <<Windows Forms 2.0 Programming, 2nd Edition>>   -  Single-Instance Applications 这一章中, 学到了调用 VB.Net 中的 IsSingleInstance, 为 C# WinForm 添加只运行应用程序的单个实例 ( Single Instance Application). 是个好方法!

该方法显然从易用性上便捷与 Mutex 和 Process 这两种只运行单个应用程序实例的方法.

Single Instance 概念:

从.NET 2.0起,提供了WindowsFormsApplicationBase类来简化Windows应用程序编程,如果您是开发人员会感到感到奇怪,WindowsFormsApplicationBase类不在System.Windows.Forms 命名空间中而是属于Microsoft.VisualBasic.ApplicationServices 命名空间,也许这是作为VB.NET开发人员的优先好处吧。该类对应的程序集为Microsoft.VisualBasic.dll,不过该程序集包含在.NET框架中一起发布,如果要引用该程序集,在部署上不存在额外操作。

WindowsFormsApplicationBase类实现了类似于Application类的一些功能,不过该类还包含一些简化Windows Forms应用程序开发的接口,下面来简单了解一下。WindowsFormsApplicationBase类实现了对单实例应用程序的支持,通过设置IsSingleInstance 属性为True以及重写OnStartupNextInstance方法可以简洁的实现。

实现

在 Program.cs - Main 方法中
1. 项目中引用VB.Net 的DLL – Microsoft.VisualBasic.DLL,
Program.cs:

2. 在Program.cs中增加一个类

Program.cs:

public sealed class SingleInstanceApplication : WindowsFormsApplicationBase
{
    public SingleInstanceApplication()
    {
        base.IsSingleInstance = true;
        base.ShutdownStyle = ShutdownMode.AfterMainFormCloses;
    }

    protected override void OnCreateMainForm()
    {
        base.MainForm = new MainForm();
    }

    protected override void OnStartupNextInstance(StartupNextInstanceEventArgs e)
    {
        base.OnStartupNextInstance(e);
        base.MainForm.Activate();
    }
}
</div>

3. 修改原 Application.Run(new MainForm()); 方法为:
//添加运行单进程程序
SingleInstanceApplication application = new SingleInstanceApplication();
application.Run(args);
</div>

SingleInstanceApplication类继承自WindowsFormsApplicationBase,在构造函数中设置为单实例模式,同时设置在主窗体关闭后退出应用程序。在继承类中,OnCreateMainForm方法被重写用来创建主窗体,如果要保证应用程序单一实例运行,还需要重写OnStartupNextInstance方法,在该应用程序的下一个应用程序实例启动时,OnStartupNextInstance方法会得到执行,在上面的实现代码中,调用基类方法同时激活主窗口。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#实现文件上传与下载功能实例
  • C#实现的一款比较美观的验证码完整实例
  • C#实现对文件进行加密解密的方法
  • C#实现彻底删除文件的方法
  • C#实现对图片文件的压缩、裁剪操作实例
  • C#实现洗牌游戏实例
  • C#实现关机重启及注销实例代码
  • C#实现只运行单个实例应用程序的方法(使用VB.Net的IsSingleInstance)
  • C#导入导出EXCEL文件的代码实例
  • C#文件操作的简单实例

相关文章

  • 2017-05-28C#使用晚绑定来实现压缩Access数据库的方法
  • 2017-05-28C#实现动态生成静态页面的类详解
  • 2017-05-28C#生成唯一不重复订单号
  • 2017-05-28C#中list用法实例
  • 2017-05-28c#获取字符串宽度的示例代码(字节数方法)
  • 2017-05-28C#调用Java代码的方法介绍
  • 2017-05-28C#判断数据类型的简单示例代码
  • 2017-05-28C#实现Datatable排序的方法
  • 2017-05-28C#更改tabControl选项卡颜色的方法
  • 2017-05-28c#结构和类的相关介绍

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#将DataTable转换成list的方法
    • 使用C#获取系统特殊文件夹路径的解决方法
    • c# xml API操作的小例子
    • C# double和decimal数据类型以截断的方式保留指定的小数位数
    • C#远程发送和接收数据流生成图片的方法
    • C#下载网页并在控制台输出的方法
    • C#正则表达式使用方法示例
    • c#操作xml帮助类分享(xml增删改查)
    • C#多线程编程中的锁系统(二)
    • c#网络唤醒功能实现

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有