我目前采用如下方法控制WinForm只能有一个实例在运行(这种要求在许多场合下都会有的):
private static bool isOpened(string formName)
{
foreach (Form myForm in System.Windows.Forms.Application.OpenForms)
if (myForm.Name == formName)
return true;
return false;
}
public static void ManageCommand(System.String unparsed)
{
if (!isOpened("ManageForm"))
{
ManageForm manageForm = new ManageForm();
manageForm.Show();
}
}
不过总觉得不是最简便的方法,哪位高人指点一下:有无更简便的方法?比如设置WinForm的一个什么属性就能实现我的要求。
private static bool isOpened(string formName)
{
foreach (Form myForm in System.Windows.Forms.Application.OpenForms)
if (myForm.Name == formName)
return true;
return false;
}
public static void ManageCommand(System.String unparsed)
{
if (!isOpened("ManageForm"))
{
ManageForm manageForm = new ManageForm();
manageForm.Show();
}
}
不过总觉得不是最简便的方法,哪位高人指点一下:有无更简便的方法?比如设置WinForm的一个什么属性就能实现我的要求。
解决方案 »
- 有什么好办法可以将C#的数据类型进行二进制级别的转换?
- 如何从SQLSERVER中取图片信息显示大IMAGE控件上
- 基础问题,在线等,只剩下5分
- C# image控件和FileUpload控件 急急急!
- 这是什么原因,{"从索引 0 处开始,初始化字符串的格式不符合规范。"}
- 我的C# 装在win2003 R2的版本上出问题,命名窗口的name属性改了名字 在资源查看中名字还是没有改 不知道是不是win2003 R2的问题?
- 代码统计器
- 求一个C# WINFROM的遍历文件夹的文件上传源码
- 打印问题,请高手赐招。
- SendKeys.SendWait(""); 需要发送 ctrl+alt+a 在线等!
- 有几个低效的写法怎么换成高效写法?
- dockPanel如何关闭右键关闭选项卡
static void Main(){bool isAppRunning = false;System.Threading.Mutex mutex = new System.Threading.Mutex(true,System.Diagnostics.Process.GetCurrentProcess().ProcessName,out isAppRunning);if (!isAppRunning){MessageBox.Show("本程序已经在运行了,请不要重复运行!");Environment.Exit(1);}else{Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(new Form1());}}
using System;namespace WFDT.MT {
public class MT_ManageTableBizCtrlImpl {
private ManageTableForm tblForm; public MT_ManageTableBizCtrlImpl() { }
public void ShowManageTableFrm() {
if (null == tblForm || tblForm.IsDisposed) {
tblForm = new ManageTableForm();
tblForm.Show();
} else {
tblForm.Activate();
}
}
}
}如果是系统只能运行一次,二楼已给出解决方法。另一种解决方法可参考:http://blog.163.com/xiaozhi797@126/blog/static/62440288200951810291301/