谁拥有控件?

Bil*_*eal 5 .net c# idisposable winforms

假设我有一些像这样的组件:

class SomeForm : Form
{
    private Control example;

    public void Stuff()
    {
        this.example = new ComboBox();
        // ...
        this.Controls.Add(example);
    }

    public void OtherStuff()
    {
        this.Controls.Remove(example);
    }
}
Run Code Online (Sandbox Code Playgroud)

谁负责调用Dispose示例控件?去除它this.Controls会导致它被丢弃吗?或者这会泄漏一堆窗口手柄支持控件?

(作为参考,我问这个是因为我没有看到Windows窗体设计器生成代码以在窗体的子项上调用Dispose的位置)

D S*_*ley 5

Form.Dispose()将处置Controls集合中的控件.因此,删除控件Controls将要求您自己处理控件.