0

我是 Visual C# 的新手,我目前正纠结于如何创建一个新表单(使用代码,而不是设计)并向这个新表单添加东西(即标签和文本框)。这是我现在拥有的:

namespace AccountInfo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            profileForm profile = new profileForm();  // Make new form
            profile.Name = "newProfile";
            profile.Text = "Add a new profile";
            profile.LabelText = "test";
            profile.Show();             // Display form
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }

    public class profileForm : Form
    {
        // Controls
        Label label1 = new Label();

        public profileForm()
        {

        }

        public string LabelText
        {
            set { label1.Text = value; }
        }

        private void profileForm_Load(object sender, EventArgs e)
        {

        }
    }
}

当我运行此代码时,我得到默认表单并单击 button1。它带来了一种新的形式,但上面什么都没有。我希望出现一个标签,但它不会。我已经尝试了多种不同的方法(这是我最近的方法),但我什么也找不到。我环顾了 StackOverflow 并提出了另一个主题,但它的解决方案对我不起作用。我会很感激对此的任何见解:) 非常感谢!

编辑:我也尝试过使用构造函数来代替。它没有帮助。

4

3 回答 3

3

您正在内存中创建一个 Label 对象,但您没有将其分配给特定的父控件,或设置它的位置等……谷歌“动态创建控件 C#”,您会发现大量示例

您基本上需要从 profileForm 中的某处调用以下两行。

   label1.Location = new Point(25,25);

   this.Controls.Add(label1);
于 2012-07-22T07:09:47.800 回答
1

按照 Dylan 的建议,您需要在 load 事件中将 Label 对象添加到 profileForm 中,如下所示:

this.Controls.Add(label1);
于 2012-07-22T07:19:55.857 回答
0

很快,我正在观看一个回答这个问题的视频。它是如何使用流布局添加动态控件的完整指南。这是视频:http ://windowsclient.net/learn/video.aspx?v=13245

于 2012-07-22T07:16:51.193 回答