powiedzmy mam jakiś składnik takiego:Kto jest właścicielem elementów sterujących?
class SomeForm : Form
{
private Control example;
public void Stuff()
{
this.example = new ComboBox();
// ...
this.Controls.Add(example);
}
public void OtherStuff()
{
this.Controls.Remove(example);
}
}
kto jest odpowiedzialny za wywołanie Dispose
sprawie kontroli przykład? Czy usunięcie go z this.Controls
powoduje jego usunięcie? Czy może to nieszczelne klamki okien wspierające kontrole?
(Dla porównania, to pytam, bo nie widzę gdzie Forms Designer Windows generuje kod, aby zadzwonić Dispose na dzieci formą'S)
Więc twierdzisz, że kontrola zostanie ujawniona? – Servy
Absolutnie nie. Jak już powiedziałem w mojej odpowiedzi, gdy formularz zawierający zostanie usunięty, wszystkie kontrole w obrębie właściwości Controls zostaną usunięte. Wszystko, co musisz zrobić, to upewnić się, że instancja zawierająca formularz została usunięta. –
Sterowanie ** nie jest ** w kolekcji 'Controls', ponieważ usunął ją z tej kolekcji przed pozbyciem się rodzica. Wygląda na to, że przegapiłeś cały punkt pytania. – Servy