2011-08-03 13 views
1

さて、ここに状況:
1)私は、1つのUserControlからなる "panel1"というパネルを持っています。
2) "panel1.dispose();"という行でコーディングした場合。このパネル1内のUserControlも破棄されますか?c#、配置するパネル内のコントロール

+1

のWinFormsの? WPF? Silverlight? ASP.Net? MonoTouch? – SLaks

答えて

4

はい。
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); 
} 
関連する問題