C# 在运行时添加标签

C# 在运行时添加标签,c#,winforms,runtime,label,C#,Winforms,Runtime,Label,如何在运行时在Visual Studio C#中创建标签?我有这个: Label test = new Label(); test.Location = new Point(1,1); test.Text = "Working"; 但它没有出现。我见过这样的用法: Controls.Add(test); 但是我得到了一个错误:当前上下文中不存在名称“Controls” 编辑: 单击按钮时会运行该方法。请重试 Page.Controls.Add(

如何在运行时在Visual Studio C#中创建标签?我有这个:

        Label test = new Label();
        test.Location = new Point(1,1);
        test.Text = "Working";
但它没有出现。我见过这样的用法:

Controls.Add(test);
但是我得到了一个错误:
当前上下文中不存在名称“Controls”

编辑:

单击按钮时会运行该方法。

请重试

Page.Controls.Add(测试)


在代码隐藏文件中。如果这不起作用,您可以从aspx.cs文件中发布更多代码吗?

这取决于您在哪里编写
控件。添加(测试)


但我几乎可以肯定,如果您执行
this.Controls.Add(test)
将解决您的问题更新:您正在寻找的是这样的东西吗

class labels
{
    public static void addLabel(Control ctrl)
    {
        Label test = new Label();
        test.Location = new Point(1, 1);
        test.Text = "Working";
        ctrl.Controls.Add(test);
    }
}

private void button1_Click(object sender, EventArgs e)
{
    labels.addLabel(this);
}

您可以将代码的类部分放入类文件中。您需要添加“使用System.Windows.Forms;”以及"使用系统绘图"。然后,您可以在项目中的其他文件中使用addLabel方法。

您在哪里添加此标签?我在这方面是新手,所以我不知道“文件背后的代码”是什么意思。这几乎就是所有相关的代码。整个方法是:public override void OnCollision(){Label test=new Label();test.Location=new Point(1,1);test.Text=“Working”;test.Enabled=true;Page.Controls.Add(test);}点击一个按钮就可以调用它。您是否有一个以
aspx.cs
结尾的文件,它是您的aspx页面的代码隐藏文件?e、 g.Default.aspx将有一个Default.aspx.cs文件,这是C#代码所在的位置。这是什么类型的项目?Web应用程序?我似乎没有这样的文件。尝试在solotion中搜索。无论您是否使用
,如果您已经在类中,这都无关紧要。可能他在类外或类似的地方使用它。没有,但我得到一个新错误:“Event.Text”不包含“Controls”的定义,并且找不到接受“Event.Text”类型的第一个参数的扩展方法“Controls”(是否缺少using指令或程序集引用?)“控制“应该是的,我刚在谷歌上看到它的使用。在第一篇博文中添加了它,并且
OnCollision
声明在哪里?哪个班?无论如何,
控件
引用了一个表单,因此请确保您正在表单类中编写代码。确实如此!这就是进步。但是当我从另一个班级打电话时,为什么它不起作用呢?需要做些什么?
class labels
{
    public static void addLabel(Control ctrl)
    {
        Label test = new Label();
        test.Location = new Point(1, 1);
        test.Text = "Working";
        ctrl.Controls.Add(test);
    }
}

private void button1_Click(object sender, EventArgs e)
{
    labels.addLabel(this);
}