C# 调用从类向窗体添加控件的函数

C# 调用从类向窗体添加控件的函数,c#,winforms,class,C#,Winforms,Class,我试图在运行时将一些控件添加到表单中。我创建了一个函数,将控件添加到表单的编码区域内。我必须从类中调用该函数,以便这些值可以用在许多其他形式中。代码如下: 在课堂上: public void AddControl(string ControlTxt) { Form1 frm1 = new Form1(); frm1.AddButton(ControlTxt); } public void AddButton(string Txt

我试图在运行时将一些控件添加到表单中。我创建了一个函数,将控件添加到表单的编码区域内。我必须从类中调用该函数,以便这些值可以用在许多其他形式中。代码如下:

在课堂上:

    public void AddControl(string ControlTxt)
    {
        Form1 frm1 = new Form1();
        frm1.AddButton(ControlTxt);
    }
    public  void AddButton(string TxtToDisplay)
    {

        Button btn = new Button();
        btn.Size = new Size(50, 50);
        btn.Location = new Point(10, yPos);
        yPos = yPos + btn.Height + 10;
        btn.Text = TxtToDisplay;
        btn.Visible = true;
        this.Controls.Add(btn);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Class1 cls1 = new Class1();
        cls1.AddControl("Hello");
    }
格式为:

    public void AddControl(string ControlTxt)
    {
        Form1 frm1 = new Form1();
        frm1.AddButton(ControlTxt);
    }
    public  void AddButton(string TxtToDisplay)
    {

        Button btn = new Button();
        btn.Size = new Size(50, 50);
        btn.Location = new Point(10, yPos);
        yPos = yPos + btn.Height + 10;
        btn.Text = TxtToDisplay;
        btn.Visible = true;
        this.Controls.Add(btn);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Class1 cls1 = new Class1();
        cls1.AddControl("Hello");
    }
当我点击
按钮1
时,代码不起作用,也没有显示任何异常。
如何从类中调用窗体的
AddButton
函数?

如果主窗体是自定义窗体类中的新窗体,则可以使用this.AddButton()

现在,您正在对表单进行新的初始化,但不会在任何地方显示它


事实上,这也是您没有收到错误的原因。应用程序按编程方式工作,但新创建的表单从未设置为窗口或设置为可见。

如果主表单是自定义表单类中的新表单,则可以使用this.AddButton()

现在,您正在对表单进行新的初始化,但不会在任何地方显示它


事实上,这也是您没有收到错误的原因。应用程序按编程方式工作,但您新创建的表单从未设置为窗口或可见。

您每次单击都会创建一个新表单(而不是使用当前表单),我会这样做(同时尽量接近您的代码):


您每次单击都会创建一个新表单(而不是使用当前表单),我会这样做(同时尽量接近您的代码):