如何在WinForm中使用自定义构造函数?

时间:2010-08-16 16:50:22

标签: c# winforms

我需要在另一个项目中实例化一个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"));

1 个答案:

答案 0 :(得分:8)

表格可行。
但是,TestURL只会在OpenBrowser来电后分配。 (: this()将首先执行整个默认构造函数)

相反,您应该在自定义构造函数中单独调用InitializeComponent,而不是链接到默认值。

.Net表单类是恰好包含一个名为InitializeComponent的自动生成方法的普通类 他们没有你需要注意的任何魔法(与VB6不同);只要您了解InitializeComponent的目的(阅读其来源),您就可以随心所欲地做任何事情。