如何删除控件父级

时间:2010-04-02 10:03:48

标签: c# wpf

我将按钮控件从一个列表移到另一个列表并发生以下错误

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

任何想法如何删除该异常。

2 个答案:

答案 0 :(得分:4)

应该相当容易:

    来自您父母控件的
  1. Get the list of controls
  2. 调用该列表中的Remove功能以删除您的控件。
  3. 这样的事情:

    myListControl.Controls.Remove(myControlToRemove);
    

答案 1 :(得分:1)

试试这个:

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);
       }
   }
}