从InitializeComponent调用基类方法

时间:2013-10-20 01:48:51

标签: c# winforms

我正在创建一个基于原型的表单应用程序,其中将有一个用于所有表单的基本模板。模板中有一个方法,需要在构造控件时由实际表单调用。

Form1.cs中:

public partial class Form1 : FormBase
{
    public Form1():base()
    {
        InitializeComponent();
    }
    ...

Form1.Designer.cs:

private void InitializeComponent()
{
    this.lblName = new MLabel();
    this.fldName = new MTextBox();
    this.lblUserID = new MLabel();
    this.fldUserID = new MTextBox();

    this.SuspendLayout();

    this.AddControl(lblName, fldName);
    this.AddControl(lblUserID, fldUserID);

FormBase.cs:

public partial class FormBase : Form
{
    public FormBase()
    {
        InitializeComponent();
    }
    protected void AddControl(Label lbl, Control ctrl)
    {
        //do something
    }
    ...

没有编译错误,但是,当我在IDE中打开Form1设计时,它找不到FormBase.AddControl。即使我运行应用程序,该方法似乎也没有被调用。

感谢。

2 个答案:

答案 0 :(得分:1)

尝试从Form1.cs调用 AddControl 方法,不要从 Form1.Designer.cs

调用它

如果这种方式仍然失败,请告诉我。 :)

答案 1 :(得分:0)

这是第二个替补:

只需更改此部分

protected void AddControl(Label lbl, Control ctrl)
{
    //do something
}

进入这个:

public void AddControl(Label lbl, Control ctrl)
{
    //do something
}