1

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

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 not found。即使我运行该应用程序,该方法似乎也没有被调用。

谢谢。

4

2 回答 2

1

Try to call the method AddControl from Form1.cs, don't call it from Form1.Designer.cs

please let me know if that way still failed. :)

于 2013-10-20T03:27:50.873 回答
0

这是第二个备选:

只是改变这部分

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

进入这个:

public void AddControl(Label lbl, Control ctrl)
{
    //do something
}
于 2013-10-20T08:15:02.347 回答