Windows フォームで使用されるすべてのコントロールのリストを見つけて収集する方法を知っています。このようなもの:
static public void FillControls(Control control, List<Control> 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 などの非ビジュアル コンポーネントを取得しません。
これらのコンポーネントのリストも取得する方法はありますか?
編集:
同様の関数で代わりに System.ComponentModel.Component を使用するように指摘してくれた @HighCore に感謝し、ImageList、Help Provider、BindingSource などのコンポーネントを含むリストを取得します。ただし、このリストにはまだ TableAdapters と DataSet が含まれていません。それらはオブジェクトから直接継承されているためだと思います。
お願いします。私のものと同様の機能を示し、コントロールのリストのみを取得する古い投稿を参照しないでください。
編集:なぜ反対票なのですか?この質問はこれまでに答えられたことはありません!