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

本文关键字:全局 访问 应用程序 可以通过 表单 | 更新日期: 2023-09-27 18:03:29

在我的VS-2008 Windows应用程序中,我想显示一个带有进度条的弹出式表单。在后台运行的类应该直接向它发送进度条值。我希望这个表单可以通过输入它的名字直接访问,而不是通过创建实例。

如果我把它的可访问角色属性设置为对话框,它会出现在顶部,会干扰用户的工作。我希望这个表单在屏幕的某个角落运行,应该作为MDI表单的子窗体出现,但应该可以直接访问。

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

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

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

这样做对一些人(包括我)来说是丑陋的,他们希望你在某个地方存储一个类的非静态实例,并通过控制对象/方法控制对它的访问。我不确定这种观点在c#实现无忧编程的世界里有多少是合理的。

如果你打算从后台线程更新进度条,请记住winforms不是线程安全的