我需要在另一个项目中实例化一个Winform。这是怎么做到的?我目前正在尝试链接默认构造函数。似乎我的自定义构造函数没有被调用。
此外..此应用程序的入口点不在拥有此表单的项目中。意味着以下内容不会运行:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new HtmlTestForm());
我不完全确定这段代码是做什么的。表格是否仍然有效?
private HtmlTestForm()
{
InitializeComponent();
OpenBrowser(new Uri(TestURL));
}
public HtmlTestForm(Uri uri)
:this()
{
TestURL = uri;
}
//在另一个项目中新建表单。
HtmlTestForm form = new HtmlTestForm(new Uri("http://SomeUri.html"));
答案 0 :(得分:8)
表格可行。
但是,TestURL
只会在OpenBrowser
来电后分配。 (: this()
将首先执行整个默认构造函数)
相反,您应该在自定义构造函数中单独调用InitializeComponent
,而不是链接到默认值。
.Net表单类是恰好包含一个名为InitializeComponent
的自动生成方法的普通类
他们没有你需要注意的任何魔法(与VB6不同);只要您了解InitializeComponent
的目的(阅读其来源),您就可以随心所欲地做任何事情。