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();
  • 相关阅读:
    搭建本地源
    shell中tar加密打包
    mysql出现ERROR 1819 (HY000)的解决方法
    mysql 创建用户及授权(2)
    mysql 创建用户及授权(1)
    Redis 工具 redis-port 使用
    mysql中 drop、truncate和delete的区别
    dlerror和dlclose用法
    dlsym用法
    dlopen用法
  • 原文地址:https://www.cnblogs.com/CandiceW/p/4210124.html
Copyright © 2011-2022 走看看