程序以及窗体运行的唯一性汇总

原创 2006年05月24日 13:57:00

经常看到有人讨论程序运行唯一性或者窗体运行的唯一性问题。我之前也写了一些文章,在此把它进行整理汇总。

 

如果是程序的唯一性问题,我之前的一篇文章已经写得很全面,可以参看。

http://blog.csdn.net/knight94/archive/2006/03/16/625809.aspx

 

如果是MDI子窗体的话,那么我最近的一篇文章提到的两种方法都不错,可以参看。

http://blog.csdn.net/knight94/archive/2006/05/17/742324.aspx

 

如果不是MDI子窗体的话,而是一般窗体的话,其实要做到唯一打开的话,其实也是很简单的,需要在窗体中去做一些简单代码即可了。

如下就用一个名叫“frmUniqueForm”窗体类来说明。

首先,需要在此窗体类中,加一个静态窗体类对象,如下:

    // Save the current form object

    private static frmUniqueForm pUniqueForm = null;

 

然后在窗体类的构造函数中,去初始化静态对象,如:

       pUniqueForm = this;

 

在窗体类的Closed事件中,去释放当前静态对象,代码如下:

    private void frmUniqueForm_Closed(object sender, System.EventArgs e)

    {

        pUniqueForm = null;

    }

 

最后,要在此窗体类中创建一个静态函数,来打开唯一窗体,具体如下:

    public static void ShowUniqueWindow()

    {

        // Init static form object

        if( pUniqueForm == null )

        {

            // Create new form

            new frmUniqueForm();

 

            // Show the form

            pUniqueForm.Show();

        }

 

        // Set window focus and topmost attributes

        pUniqueForm.Focus();

        pUniqueForm.TopMost = true;

    }

 

       那么在其他地方去打开此窗口就非常简单了,只需调用这个静态函数即可,如下:

       frmUniqueForm.ShowUniqueWindow();

Windows下实现程序单一运行

一 引言      程序单一运行就是在一个操作系统中,一个程序只有一个实例在系统中运行.比如千千静听,你无法在系统中运行两个千千静听的实例. 二 需求描述程序的单一运行当系统中已有一个程序运时,将改程...
  • kansas
  • kansas
  • 2009年07月06日 15:14
  • 1014

C# 实现程序只启动一次(多次运行激活第一个实例,使其获得焦点,并在最前端显示)

多个程序只启动一次,如果再次启动该程序,则使其获得焦点,并显示在最前端。...

C#将exe运行程序嵌入到自己的winform窗体中

以下例子是将Word打开,然后将它嵌入到winform窗体中,效果如下图:     注意:该方法只适用于com的exe(如word,Excel之类),.net的编的exe就不...

vs平台运行窗体应用程序时避免dos窗口弹出的方法

背景   最近小编在运行winform窗体应用程序时,会弹出之前运行非winform程序的dos窗口。对比源代码,发现这一问题可以解决,具体的过程请往下看: 问题 小编在运行窗体程序时,...

C#将exe运行程序嵌入到自己的winform窗体中

以下例子是将Word打开,然后将它嵌入到winform窗体中,效果如下图:     注意:该方法只适用于com的exe(如word,Excel之类),.net的编的exe就不...

DELPHI程序运行时窗体设计器组件

  • 2005年09月13日 14:13
  • 101KB
  • 下载

关于C#关闭窗体后,依旧有后台进程在运行的解决方法

话不多说直接粘贴链接,这个博主写的非常详细 http://www.cnblogs.com/HappyEDay/p/5713707.html 这里粘贴原文权当备份了。 C#中WinForm程序退...
  • mainbyz
  • mainbyz
  • 2017年03月22日 10:40
  • 3106

C#运行窗体可移动控件

  • 2015年08月18日 00:31
  • 58KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:程序以及窗体运行的唯一性汇总
举报原因:
原因补充:

(最多只允许输入30个字)