c #, элементы управления на панели должны быть расположены - PullRequest
1 голос
/ 03 августа 2011

Ладно, вот ситуация:
1) У меня есть панель под названием "panel1", которая состоит из одного элемента UserControl.
2) Если я закодировал с этой строкой "panel1.dispose ();". Будет ли удаляться UserControl внутри этой панели1?

1 Ответ

4 голосов
/ 03 августа 2011

Да.
Удаление элемента управления WinForms также приведет к удалению всех его дочерних элементов управления.

Это можно увидеть в источнике:

ControlCollection controlsCollection = (ControlCollection)Properties.GetObject(PropControlsCollection); 

if (controlsCollection != null) { 

    // PERFNOTE: This is more efficient than using Foreach.  Foreach
    // forces the creation of an array subset enum each time we 
    // enumerate
    for(int i = 0; i < controlsCollection.Count; i++) {
        Control ctl = controlsCollection[i];
        ctl.parent = null; 
        ctl.Dispose();
    } 
    Properties.SetObject(PropControlsCollection, null); 
}
...