2014-02-12 49 views
0

我想将我的Form::initializeComponent()方法分离成许多方法。即,创建选项卡1的方法,创建选项卡2并在Form::initializeComponent()内调用这些方法的方法。我这样做是为了让代码更易于管理和可读 - 它更容易跳到createTab3()并找出发生了什么,而不是搜索数百行代码来查找tab3的创建。InitialiseComponent中的方法导致设计器和运行时错误

例子:

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()内引起的。

有没有一种方法,我仍然可以在initializeComponent()里面有方法createTab1()并且让设计师工作,并且不会让我的发行版崩溃?

或者我必须将我所有的代码放在initializeComponent()之内吗?也许这是一种告诉VS2010,方法createTab1()应该在“设计模式”中执行还是什么?

回答

0

虽然您可以将代码添加到InitializeComponent方法中,但建议您不要重新创建,而是每次更改时都要更改设计器中的UI。

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

相关问题