代码之家  ›  专栏  ›  技术社区  ›  Asim Sajjad

如何删除控件的父级

  •  2
  • Asim Sajjad  · 技术社区  · 14 年前

    我正在将按钮控件从一个列表删除到另一个列表,并出现以下错误

    “指定的元素已经是另一个元素的逻辑子元素。先断开它”

    知道如何删除这个异常吗?

    2 回复  |  直到 14 年前
        1
  •  4
  •   Jon Cage    14 年前

    应该相当容易:

    1. Get the list of controls 来自您的父控件。
    2. 打电话给 Remove 函数在该列表中删除您的控件。

    所以像这样:

    myListControl.Controls.Remove(myControlToRemove);
    
        2
  •  1
  •   Stremlenye    14 年前

    试试这个:

    public partial class Form1 : Form
    {
            private void button1_Click(object sender, EventArgs e)
            {
                Util.PlaceControlToContainer(this.button1, this.panel2);
            }
    }
    public static class Util
    {
       public static void PlaceControlToContainer(Control control, Control container)
       {
           lock (control)
           {
              if (control.Parent != null)
              {
                  control.Parent.Controls.Remove(control);
              }
              container.Controls.Add(control);
           }
       }
    }