通过应用程序使表单可以全局访问

时间:2011-07-26 18:41:07

标签: c# winforms mdi

在我的VS-2008 Windows应用程序中,我想显示一个带有进度条的弹出窗体。在后台运行的类应直接向其发送进度条值。我希望通过键入名称而不是通过创建实例来直接访问此表单。

如果我将它的Accessible Role属性设置为Dialog,它将会出现在顶部并会干扰用户的工作。我希望此表单在屏幕的某个角落运行,并且应该显示为MDI表单的子项,但应该可以直接访问。

1 个答案:

答案 0 :(得分:2)

http://en.wikipedia.org/wiki/Singleton_pattern

最简单的方法是使整个类保持静态,并将所有实例变量和方法更改为静态。然后,您可以按类名称调用方法,例如MyFormClass.UpdateProgress(2);

对某些人(包括我)来说,这样做是很难看的,他们希望你在某处存储一个类的非静态实例,并通过控制对象/方法控制对它的访问。我不确定在C#的实现 - 无忧无虑的编程世界中,有多少意见是合法的。

此外,如果您计划从后台线程更新进度条,请记住,winforms不是线程安全的。