【发布时间】:2015-11-19 13:20:31
【问题描述】:
我正在尝试制作一个 windows form 以便在多个项目中重复使用。所以我认为这将是一个类库。我想要做的是调用WindowsForm.Show() 作为静态调用。我试图创建一个类库,但我无法获得图标的资源。然后我创建了一个WinForms 项目,但它希望在 program.cs 中有一个“新”。我不想打电话
WindowsForm form = new WindowsForm()
form.show()
如何创建可重复使用的静态表单?我希望我是清楚的。
【问题讨论】:
-
这是可行的。包含
Form/UserControl/whatever 的 dll。您是真正的问题“无法访问图标的资源”?将其公开为另一个static属性以便稍后设置。或者作为参数传递给静态方法,该方法将创建实例并显示表单。 -
这一切都是可行的,类工厂是一个明显的替代方案,但忽略表单实际上不是“可重用”的事实迟早会变得非常糟糕。一旦它被关闭,它就不再可用,并且无论如何尝试使用它都会产生 ObjectDisposedException。这可以被破解,但表单对象非常昂贵。您实际上是在创建内存泄漏。只是不要。
-
(new WindowsForm()).Show()到底有什么问题?
标签: c# winforms .net-assembly