Control[] ct = new Control[10]; ct[0] = dataGridView1; //假设生成了一个dataGridView,name是dataGridView1 .............//添加其他控件
//删除动态生成的控件 foreach(Control ct0 in ct ) { this.Controls.Remove(ct0); }试试呢
从父控件中移除,再调用控件的Dispose()
补充:我在事件a中new了个控件,如何在事件b中对他的text赋值?我可真是个菜鸟
你把那个控件类定义为全局变量即可;我给你写了一个例子: public partial class Form1 : Form { public Form1() { InitializeComponent(); } int i = 0; TextBox[] textboxshow = new TextBox[3]; private void button1_Click(object sender, EventArgs e) {
textboxshow[0] = new TextBox(); textboxshow[0].Text = "第一控件"; textboxshow[1] = new TextBox(); textboxshow[1].Text = "第二个控件"; textboxshow[2] = new TextBox(); textboxshow[2].Text = "第三个控件"; int a = 0; foreach (TextBox b in textboxshow) { this.Controls.Add(b); b.Location = new Point(a + 50, 100); a = a + 200; } } private void button2_Click(object sender, EventArgs e) { if(i<=2) this.Controls.Remove(textboxshow[i]); i++; }
Control[] ct = new Control[10];
ct[0] = dataGridView1; //假设生成了一个dataGridView,name是dataGridView1
.............//添加其他控件
//删除动态生成的控件
foreach(Control ct0 in ct )
{
this.Controls.Remove(ct0);
}试试呢
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int i = 0;
TextBox[] textboxshow = new TextBox[3]; private void button1_Click(object sender, EventArgs e)
{
textboxshow[0] = new TextBox();
textboxshow[0].Text = "第一控件";
textboxshow[1] = new TextBox();
textboxshow[1].Text = "第二个控件";
textboxshow[2] = new TextBox();
textboxshow[2].Text = "第三个控件";
int a = 0;
foreach (TextBox b in textboxshow)
{
this.Controls.Add(b);
b.Location = new Point(a + 50, 100);
a = a + 200;
} } private void button2_Click(object sender, EventArgs e)
{
if(i<=2)
this.Controls.Remove(textboxshow[i]);
i++;
}