Windowsフォームで使用されるすべてのコントロールのリストを見つけて収集する方法を知っています。このような 何か:Windowsフォームでコンポーネントを検索するC#(コントロールではない)
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、イメージリストのようなフォームの下部に非ビジュアルコンポーネント、TableAdapters、データセット、
を取得しない方法はありますこれらのコンポーネントのリストも取得できますか?
編集:
おかげで同様の機能に代わりSystem.ComponentModel.Componentを使用するように私を指しているため@HighCore私部品などのImageList、ヘルププロバイダとのBindingSourceのリストを取得しています。 しかし、私はまだこのリストからTableAdaptersとDataSetsを見逃しています。私はそれらがObjectから直接継承されるためだと思います。
を入力してください。似たような機能を持ち、コントロールのリストしか取得していない古い投稿を参照しないでください。
編集:なぜ否定票ですか?この質問はこれまでに決して答えられていません!
私はwinformsに慣れていませんが、探しているものが 'Components'(I.E' System.ComponentModel.Component')であれば、 'Control'の代わりにそれを使うべきです。そして、BTWは、この恐ろしいforeachコードを美しい '.SelectMany()'に変更してください。 –
http://stackoverflow.com/questions/6736914/how-to-access-find-all-controls-and-all-components-into- form-in-c –
重複:[すべてのコントロールとすべてのコンポーネントをC#でフォームにアクセスするにはどうすればよいですか?](http://stackoverflow.com/questions/6736914/how-to-access-find-all-controls- and-all-components-in-c) – SwDevMan81