如何在winform中动态添加或删除控件

bohu2114 2012-05-24 10:23:55
如何在winform中动态添加或删除控件,多谢了
...全文
1578 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackey0517 2015-02-05
  • 打赏
  • 举报
回复
移除后最好dispose掉
安迪小宝 2015-02-05
  • 打赏
  • 举报
回复
我是这样子去实现的,动态生成的时候给加个右键菜单,然后要删除时右键菜单响应。
 private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            pictureBox1.Controls.Remove(contextMenuStrip1.SourceControl);
            contextMenuStrip1.SourceControl.Dispose();
            pictureBox1.Refresh();
        }
希望对后来看到的人有用
okkk 2012-05-25
  • 打赏
  • 举报
回复
可以参考 设计器生成的 designer.cs
删除就是 Controls.Remove
熙风 2012-05-25
  • 打赏
  • 举报
回复
this.Controls.Clear();
//移除所有
熙风 2012-05-25
  • 打赏
  • 举报
回复
Panel pnl = new Panel();
TextBox textBox3 = new TextBox();
textBox3.BackColor = Color.White;
textBox3.Location = new System.Drawing.Point(481, 6);
textBox3.Name = "textBox3";
textBox3.Size = new System.Drawing.Size(118, 21);
textBox3.TabIndex = 5;
textBox3.ReadOnly = true;
textBox3.Text = OperatorName;
pnl.Controls.Add(textBox3);
this.pnlMessage.Controls.Add(pnl);


移除
for (int i = 0; i < flowLayoutPanel.Controls.Count; i++)
{
if (flowLayoutPanel.Controls[i].Name == txtFilePath.Text)
{
flowLayoutPanel.Controls.Remove(flowLayoutPanel.Controls[i]);
txtFilePath.Text = "";
return;
}
}
dalmeeme 2012-05-24
  • 打赏
  • 举报
回复
		private void Form1_Load(object sender, EventArgs e)
{
Button[] buttons = new Button[3];
for (int i = 0; i < buttons.Length; i++)
{
buttons[i] = new Button();
buttons[i].Name = "button" + i;
buttons[i].Text = buttons[i].Name;
buttons[i].Location = new Point(10, 30 * i);
buttons[i].Click += new EventHandler(Buttons_Click);
}
this.Controls.AddRange(buttons);
}
void Buttons_Click(object sender, EventArgs e)
{
this.Text = (sender as Button).Text;
}


移除控件用this.Controls.Remove(控件);//不一定是this,也可以是其他父容器控件
caoqinghua 2012-05-24
  • 打赏
  • 举报
回复
//添加控件
TextBox txt = new TextBox();
txt.Text = "我是自动添加的";
txt.Location = new Point(10, 10);
this.Controls.Add(txt);
//移除控件
this.Controls.Remove(txt);
txt.Dispose();
threenewbee 2012-05-24
  • 打赏
  • 举报
回复
Controls.Add(new Label() { Size = new Size(100, 100), Text = "I'm new", name = "newlabel" });

Controls.Remove("newlabel");

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧