.NET フォーム オブジェクトのすべてのコンポーネントを列挙し、そのプロパティの一部を c# で変更する方法はありますか? 基本フォームのメソッドは、派生フォームで追加されたものを含むすべてのコンポーネントを列挙できる必要があります。
Delphi と同様に、.NET の C# では、フォーム内のすべてのビジュアル コントロールを一覧表示できます。
Delphi: Self.Controls[i];
// i = 0 から ControlCount-1 まで
c#:foreach(Control c in Controls) {}
これらの言語/テクノロジの両方で、これをベース フォームメソッドで使用して、派生フォームに追加されたすべてのコントロールを一覧表示できます。
ここまでは順調ですが、非ビジュアル コンポーネントでは同じようには機能しません。
Delphi では、次の方法ですべての非ビジュアル コンポーネントをリストできます。
Self.Components[i];
// ここで i = 0 から ComponentCount-1 . リストには、派生フォームに追加されたすべてのコンポーネントも含まれていることに注意してください。
C# では同様の方法では機能しません。フォームのコンテナを使用して、一部のコンポーネントcomponents
に関する情報を取得できます。. すべてのコンポーネントがリストされているわけではありません。たとえば、 を使用して作成されていない DevArt の MySQL コンポーネントは列挙できません。System.ComponentModel.Container
ComponentsModel.Container
さらに、 ComponentModel.Containerインスタンスは各フォーム オブジェクトに対してローカルであるため、派生フォームに追加されるコンポーネントは、 ComponentModel.Containerを使用して作成された場合でも、基本オブジェクトで列挙できません。