在c#中如何删除动态生成的控件??

来源:百度知道 编辑:UC知道 时间:2024/06/30 09:41:12
PictureBox pic;
Label label1, label2;
foreach (string key in gm.Game.CurrentLevel.Monsters.Keys)
{
UIContainer monsterContainer = new UIContainer();

pic = new PictureBox();
//背景色为透明
pic.BackColor = Color.Transparent;
pic.SizeMode = PictureBoxSizeMode.AutoSize;
//初始位置是怪物对象的初始位置
pic.Location = gm.Game.CurrentLevel.Monsters[key].OriginalLocation;
//怪物图片
pic.Image = gm.Game.CurrentLevel.Monsters[key].Image;
//右键指定
pic.ContextMenuStrip = this.cmsAttack;
//保存怪物key
pic.Tag = key;
//描绘到窗体
this.Controls.Add(pic);
//保存一个容器对象
monsterContainer.Pic = pic;

label1 = new Lab

  1. 单击button1在panel上动态新建了多个label,现在想要点击选择某个动态新建的label,按button2,可以把这个label删掉
    在button1_Click事件中,创建label,代码:

  2. Label lb1 = new Label();
     lb1.Name = "panel"+j;
     lb1.BackColor = Color.Transparent;
     lb1.BorderStyle = BorderStyle.FixedSingle;
     Panel1.Controls.Add(lb1);

  3. 为这些label增加Click事件

  4.     Label lb1 = new Label();
      lb1.Name = "panel"+j;
      lb1.BackColor = Color.Transparent;
     lb1.Click += new EventHandler(label_Click);
      lb1.BorderStyle = BorderStyle.FixedSingle;
    Panel1.Controls.Add(lb1);
    string name = "";
    private void label_Click(object sender, EventArgs e)
    {
        Label lbl = sender as Label;
        name = lbl.Name;
    }

  5. 然后在Button2的Click中:


private void button2_Click(object sender, EventArgs e)
{
  &