在面板中的控件被处置

本文关键字:控件 | 更新日期: 2023-09-27 18:04:35

好的,这里有一个情况:
1)我有一个名为"panel1"的面板,由一个UserControl组成。
2)如果我用这行代码"panel1.dispose();"。这个panel1中的UserControl也会处理吗?

在面板中的控件被处置

可以。
处置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); 
}