c通过单击按钮创建一个新表单,并将控件添加到新创建的表单中


public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void button2_Click(object sender, EventArgs e)
{  
Form myForm = new Form();
myForm.Show();
}
public void createControl_Click(object sender, EventArgs e)
{
TextBox Text = new TextBox();
Text.Text = "Hi Hello";
Text.ForeColor = Color.BlueViolet;
Text.BackColor = Color.Silver;
Text.Top = top;
Text.Left = 20;
using (var myForm = new Form())
{
myForm.Controls.Add(Text); 
}
}
}

正如他们在注释中提到的,您从Form类创建了两个不同的对象。您将文本框添加到其中一个,但显示另一个。

您可以通过为Form类型的form1类创建一个成员来解决这个问题,并在每个方法中使用该成员。类似这样的东西:

public partial class Form1 : Form
{
private Form _myForm;
public Form1()
{
InitializeComponent();
_myForm = new Form();
}
public void button2_Click(object sender, EventArgs e)
{
_myForm.Show();
}
public void createControl_Click(object sender, EventArgs e)
{
TextBox Text = new TextBox();
Text.Text = "Hi Hello";
Text.ForeColor = Color.BlueViolet;
Text.BackColor = Color.Silver;
Text.Top = top;
Text.Left = 20;
_myForm.Controls.Add(Text);

}
}

最新更新