让程序中的某个Form某个时间只运行一个实例 [C#、WinForm]
来源:互联网 发布:网络经纪人安居客头像 编辑:程序博客网 时间:2024/06/05 16:07
前面讲了让某个程序只运行一个实例的方法(用到了System.Threading.Mutex),这里讲让程序中某个Form只运行一个实例的方法:
情景是这样的,若在我们编写的某个App中托盘图标的右键弹出菜单选择"设置..."菜单项,就会弹出OptionForm窗口,但是在未关闭OptionForm时,再次点击"设置..."菜单,这时不希望再弹出一个OptionForm窗口了,应该怎么做呢?
我的实现是在 static class Program {... }中加入全局静态布尔变量,供两个不同的窗体设置和检测,进而确保子Form只实例化一个。当然可能还有其他更多更好的方法,但我觉得我的这个方法好理解,实现起来也不难。
//Program类
static class Program
{
public static bool IsOptionFormOpened; //*关键: 全局静态,用于窗口间传值
[STAThread]
static void Main()
{
Application.Run(new FormMain());
}
}
//在FormMain类中
private void 设置OToolStripMenuItem_Click(object sender, EventArgs e)
{
if (!Program.IsOptionFormOpened) //如果为真就不在new FormOption()了
{
formOption = new FormOption();
formOption.Show();
Program.IsOptionFormOpened = true;
}
}
//在FormOption类中
private void FormOption_FormClosed(object sender, FormClosedEventArgs e)
{
Program.IsOptionFormOpened = false;
}
(上例没有实现在FormMain中第二次单击"设置"按钮时,激活FormOption)
- 让程序中的某个Form某个时间只运行一个实例 [C#、WinForm]
- C#winform中只允许程序运行一个实例
- WinForm程序只运行一个实例
- C# WinForm 只运行一个程序实例
- WinForm程序只运行一个实例
- 让Java程序只运行一个实例
- 让Delphi程序只运行一个实例
- 让程序只运行一个实例
- Python - 让程序只运行一个实例
- 让Java程序只运行一个实例
- 让程序只运行一个实例
- 让MFC程序只运行一个实例
- 如何让程序只运行一个实例
- Qt让程序只运行一个实例
- C++Builder 程序只运行一个实例
- winform只运行一个程序
- C# Winform程序只允许运行一个实例
- 让某个程序开机后自动运行
- asp.net 数据集 使用DataObjectTypeName
- 悟
- 霍夫曼树 编码
- C#下使用Excel 2007 COM接口将数据保存为Excel文件
- 瓜帅犯傻 巴萨出局犹光荣 摸鸟偷师 国米晋级成杯具
- 让程序中的某个Form某个时间只运行一个实例 [C#、WinForm]
- 配置Zend Framework
- 下载我的资源
- 用c++构造自己的log类
- API查询网址
- windows socket编程原理
- IBM的实训结束了
- 关于Ubuntu9.04下 安装netbeans
- 12.6 线程控制_线程私有数据