【问题标题】:New control in Form from another Class来自另一个类的表单中的新控件
【发布时间】:2012-02-13 18:39:48
【问题描述】:

我在与 Form1 相同的文件中有一个类:Form 类(直接进行),并希望从类中创建一个新控件(标签 thisObj = new label();)。我尝试使用以下代码:

Form1 form = new Form1();
label thisObj = new label();
thisObj.Name = "One";
form.Controls.Add(thisObj);

但是,当我这样做时,开始调试时不会加载表单窗口。

编辑:"Form1 form = new Form1()" 行导致表单无法加载。

【问题讨论】:

  • Form1 form = new Form1() 不加载表单。你至少需要打电话给ShowShowDialog 才能做到这一点。

标签: c# winforms controls


【解决方案1】:

尝试:

this.Controls.Add(thisObj);

它将控件添加到当前窗体。

【讨论】:

  • 正如你在我的代码中看到的,我已经在使用 Add 函数了。
【解决方案2】:

如果只是在当前窗体中添加一个控件,Frederick 的代码是正确的,如下所示:

var thisObj = new Label { Name = "One", Text = "Some Text" };
Controls.Add(thisObj);

Form1 不显示是正常的,你从来不调用 Show() 方法。如果您想显示 Form1 并添加了新标签,代码如下:

var form = new Form1();
var thisObj = new Label { Name = "One", Text = "Some Text" };
form.Controls.Add(thisObj);
form.Show();

在您的 WindowsForms 应用程序中默认加载的表单在文件“Program.cs”中定义:

Application.Run(new Form1);

【讨论】:

    【解决方案3】:

    我通过类的构造函数发送表单的一个实例来解决这个问题。

    【讨论】:

      猜你喜欢
      • 2020-04-19
      • 1970-01-01
      • 2016-05-06
      • 1970-01-01
      • 2014-09-20
      • 2012-04-04
      • 2014-03-28
      • 1970-01-01
      • 2014-05-29
      相关资源
      最近更新 更多