Windows窗体标签在动态创建时不会出现

本文关键字:创建 窗体 标签 动态 Windows | 更新日期: 2023-09-27 18:16:42

我正在编写一个程序,该程序为在表单上编写文本创建标签,但在不知何故设法销毁了一个重要的类之后,我又从头开始…我似乎不能让它打印标签了,但他们根本不出现。

public partial class Form1 : Form
{
    static Form FormX = new Form();
    public Form1()
    {
        Shown += new EventHandler(FormX_Shown);
        InitializeComponent();
    }
    public void FormX_Shown(object sender, EventArgs e)
    {
        WriteTextOnScreen("Hello!");
    }
    public void WriteTextOnScreen(string text)
    {
        Label tempLabel = new Label();
        tempLabel.Text = text;
        tempLabel.Name = "";
        tempLabel.Location = new Point(10, 10);
        FormX.Controls.Add(tempLabel);
    }
}

我不知道问题是什么,但现在它变得越来越令人讨厌了,因为我不够聪明,无法自己解决它:-P

Windows窗体标签在动态创建时不会出现

您将标签添加到FormX的控件集合中,此表单将永远不会显示。
我认为你应该给你自己的实例添加标签(this)

public void WriteTextOnScreen(string text)
{
    Label tempLabel = new Label();
    tempLabel.Text = text;
    tempLabel.Name = "";
    tempLabel.Location = new Point(10, 10);
    this.Controls.Add(tempLabel);
}

然而,这只适用于一个标签,因为位置总是相同的(10,10)。如果您多次调用此方法,则最后一个标签将绘制在前一个标签的上方,并且您将只看到最后一个标签。