如何在c#中避免多个windows窗体实例?我只想运行一个表单实例.因为有可能从我的应用程序的许多页面打开相同的表单.
Nat*_*ium 11
一个例子:CodeProject:Simple Singleton Forms(好吧,它在VB.NET中,但只是为了给你一个线索)
是的,它有单身模式,
用于创建单个对象的代码,
public partial class Form2 : Form
{
.....
private static Form2 inst;
public static Form2 GetForm
{
get
{
if (inst == null || inst.IsDisposed)
inst = new Form2();
return inst;
}
}
....
}
Run Code Online (Sandbox Code Playgroud)
调用/显示此表单,
Form2.GetForm.Show();
Run Code Online (Sandbox Code Playgroud)
为了使该表单再次出现在前台的解决方案是:
private bool checkWindowOpen(string windowName)
{
for (int i = 0; i < Application.OpenForms.Count; i++)
{
if (Application.OpenForms[i].Name.Equals(windowName))
{
Application.OpenForms[i].BringToFront();
return false;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
windowName本质上是Windows窗体的类名,返回值可用于不创建新的窗体实例。
| 归档时间: |
|
| 查看次数: |
29799 次 |
| 最近记录: |