Visual C#:如何向用代码创建的窗体添加控件?
我是Visual C的新手,目前我一直在研究如何创建一个新表单(使用代码,而不是设计)并向这个新表单添加内容(即标签和文本框)。以下是我现在拥有的:Visual C#:如何向用代码创建的窗体添加控件?,c#,C#,我是Visual C的新手,目前我一直在研究如何创建一个新表单(使用代码,而不是设计)并向这个新表单添加内容(即标签和文本框)。以下是我现在拥有的: namespace AccountInfo { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1
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)
{
}
}
}
当我运行这段代码时,我会得到默认表单,然后单击按钮1。它提出了一种新的形式,但没有任何内容。我期待一个标签出现,但它不会。我尝试了多种不同的方法(这是我最近的一种方法),但我没有发现任何东西。我环顾了StackOverflow,然后又提到了另一个话题,但它的解决方案对我来说并不适用。我很感激你能深入了解这一点:)非常感谢
编辑:我也尝试过使用构造函数。它没有帮助。您正在内存中创建标签对象,但没有将其指定给特定的父控件,也没有设置其位置等。。。谷歌“动态创建控件C#”,你会发现一吨的 您基本上需要从profileForm中的某个地方调用以下两行代码
label1.Location = new Point(25,25);
this.Controls.Add(label1);
您正在内存中创建标签对象,但没有将其指定给特定的父控件,也没有设置其位置等。。。谷歌“动态创建控件C#”,你会发现一吨的 您基本上需要从profileForm中的某个地方调用以下两行代码
label1.Location = new Point(25,25);
this.Controls.Add(label1);
很快,我就在看一段回答这个问题的视频。 它是如何在流程布局中添加动态控制的完整指南。
下面是视频:很快,我在看一段视频,回答了这个问题。 它是如何在流程布局中添加动态控制的完整指南。
以下是视频:根据Dylan的建议,您需要在load事件中将Label对象添加到profileForm中,如下所示:
this.Controls.Add(label1);
按照Dylan的建议,您需要在load事件中将Label对象添加到profileForm中,如下所示:
this.Controls.Add(label1);
啊,谢谢。我缺少控件。添加行。我之前一直在修补这个,弄不懂它想让我说什么。我在这里发布的代码比我之前处理的代码要少一些(因此,如果它让我看起来好像没有尝试,那就不是这样了:)。谢谢你的帮助!哈哈,谢谢!StackOverflow也是新手…还没有发现它的所有复杂之处:)啊,谢谢。我缺少控件。添加行。我之前一直在修补这个,弄不懂它想让我说什么。我在这里发布的代码比我之前处理的代码要少一些(因此,如果它让我看起来好像没有尝试,那就不是这样了:)。谢谢你的帮助!哈哈,谢谢!StackOverflow也是新手……还没有发现它的所有复杂之处:)右键单击
InitializeComponent()代码>和转到定义(或F12)。在那里,您将看到表单设计器生成的代码代码>和转到定义(或F12)。在这里,您将看到表单设计器生成的代码。是否有任何理由将其保留在加载事件中而不是构造函数中?似乎有几种方法可以实现这个目标,但我不确定哪种方法是最好的,或者为什么…没有理由在加载事件中使用它。您甚至可以在构造函数中添加控件。是否有任何理由将此控件保留在加载事件中而不是构造函数中?似乎有几种方法可以实现这个目标,但我不确定哪种方法是最好的,或者为什么…没有理由在加载事件中使用它。您甚至可以在构造函数中添加控件。