Найти компоненты в форме окна C # (не элементы управления)

Я знаю, как найти и собрать список всех элементов управления, используемых в форме Windows. Что-то вроде этого:

static public void FillControls(Control control, List AllControls)
{
    String controlName = "";
    controlName = control.Name;

    foreach (Control c in control.Controls)
    {
        controlName = c.Name;
        if ((control.Controls.Count > 0))
        {
            AllControls.Add(c);
            FillControls(c, AllControls);
        }
    }
}

Однако эта функция не извлекает невизуальные компоненты в нижней части формы, такие как HelpProvider, ImageList, TableAdapters, DataSets и т. Д.

Есть ли способ получить список этих компонентов?

Редактировать:

Спасибо @HighCore за указание использовать System.ComponentModel.Component вместо этого в аналогичной функции, и я получаю список с такими компонентами, как ImageList, поставщик справки и BindingSource. Тем не менее, я все еще пропускаю из этого списка TableAdapters и DataSets. Я полагаю, потому что те наследуют непосредственно от объекта.

пожалуйста, Дон»Я имею в виду старые посты, в которых показана функция, аналогичная моей, и которая получает только список элементов управления.

Редактировать: Почему отрицательные голоса? На этот вопрос никогда раньше не отвечали!

Ответы на вопрос(1)

Ваш ответ на вопрос