Нет, нет.
Я попробовал это.
Вы можете вставить следующий код в LINQPad :
var form = new Form();
var b = new Button();
form.Controls.Add(b);
b.Click += delegate { b.Dispose(); };
Application.Run(form);
EDIT : элемент управления будет удален из коллекции Controls
формы. Чтобы продемонстрировать это, замените обработчик кликов следующим:
b.Click += delegate { b.Dispose(); MessageBox.Show(form.Controls.Count.ToString());};
Покажет 0
.
2 и РЕДАКТИРОВАТЬ : Control.Dispose(bool disposing)
содержит следующий код:
if (parent != null) {
parent.Controls.Remove(this);
}