InitialiseComponent中的方法导致Designer和运行时错误

时间:2014-02-12 04:25:26

标签: c# winforms windows-forms-designer

我想将Form::initializeComponent()方法分成许多方法。即,创建选项卡1的方法,创建选项卡2并在Form::initializeComponent()内调用这些方法的方法。我这样做是为了使代码更易于管理和阅读 - 更容易跳转到createTab3()并找出最新的内容而不是搜索数百行代码来查找tab3的创建。

示例:

private void InitializeComponent()
{
    // Default form creation and initialisation code here

    createTab1();
    createTab2();
    createTab3();

    // Show form code here
}

我的问题:我无法在设计器中查看我的对话框 - 我收到错误提示The variable tab1 is either undeclared or was never assigned。那是因为该代码出现在createTab1()中。我也无法运行我的Release build .exe,它崩溃了。如果我将createTab1()(以及所有其他制表符方法)中的所有代码放在initializeComponent()中,那么发行版.exe运行正常。因此,崩溃的原因是createTab1()代码不在initializeComponent()内。

我是否仍然可以在createTab1()内使用方法initializeComponent(),让设计师工作,而不是让我的发布.exe崩溃?

或者我是否必须将所有代码放在initializeComponent()内?也许这是告诉VS2010方法createTab1()应该在'设计模式'中执行的方法吗?

1 个答案:

答案 0 :(得分:0)

虽然您可以向InitializeComponent方法添加代码,但建议您不要因为每次更改设计器中的UI而重新生成

也许您可以将代码移动到form_load方法中,或者甚至在调用InitializeComponent之后,如果您想编写自己的代码来创建控件,否则如果您使用设计器,则保留代码自动生成的代码。< / p>