程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#完成只運轉單個實例運用法式的辦法(應用VB.Net的IsSingleInstance)

C#完成只運轉單個實例運用法式的辦法(應用VB.Net的IsSingleInstance)

編輯:C#入門知識

C#完成只運轉單個實例運用法式的辦法(應用VB.Net的IsSingleInstance)。本站提示廣大學習愛好者:(C#完成只運轉單個實例運用法式的辦法(應用VB.Net的IsSingleInstance))文章只能為提供參考,不一定能成為您想要的結果。以下是C#完成只運轉單個實例運用法式的辦法(應用VB.Net的IsSingleInstance)正文


從 <<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:
using Microsoft.VisualBasic.ApplicationServices;

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();
    }
}

3. 修正原 Application.Run(new MainForm()); 辦法為:

//添加運轉單過程法式
SingleInstanceApplication application = new SingleInstanceApplication();
application.Run(args);

SingleInstanceApplication類繼續自WindowsFormsApplicationBase,在結構函數中設置為單實例形式,同時設置在主窗體封閉撤退退卻出運用法式。在繼續類中,OnCreateMainForm辦法被重寫用來創立主窗體,假如要包管運用法式單一實例運轉,還須要重寫OnStartupNextInstance辦法,在該運用法式的下一個運用法式實例啟動時,OnStartupNextInstance辦法會獲得履行,在下面的完成代碼中,挪用基類辦法同時激活主窗口。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved