zoukankan      html  css  js  c++  java
  • C# Winform程序以及窗体运行的唯一性汇总

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

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

    C# Winform如何使自己的程序只运行一次

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

    C# Winform如何在MDI中使子窗体只保留一个实例

    如果不是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();
  • 相关阅读:
    Java 集合-Map集合嵌套 的遍历四种方式
    Java 集合-set集合,Map接口
    Java 集合 Collection
    Java中的各种转换
    Java 关于时间的类
    Java 中 String、StringBuffer、StringBuilder 类
    Java 构造函数,super,this,final,static
    Java 面向对象关键字
    ArrayList集合
    JAVA数组
  • 原文地址:https://www.cnblogs.com/CandiceW/p/4210124.html
Copyright © 2011-2022 走看看