1
私のソリューションでは、他のコントロールにプロパティを提供するためにIExtenderProvider
を実装するカスタムコンポーネントがあります。私は、引数としてコントロールを取って、そのコンポーネントのメソッドを実装したいと思い、それが関連しているエクステンダーコンポーネントのインスタンスを返します、このような何か:拡張コントロールから拡張型インスタンスを返すメソッド
Public Function GetErrorProvider(c As Control) As MyErrorProvider
Dim errorProvider as MyErrorProvider
'Some code here
Return errorProvider
End Function
私は単純にフォームを見て考えますMyErrorProvider
タイプの制御のためにループして、それを使用してください。フォームごとに複数のコンポーネントがあるわけではありませんが、もっと直接的なアプローチが必要です。私は、フォームの範囲外で、そのインスタンスの実行時定義値に依存するロジックのためにこれを必要とします。
アイデア/提案はありますか? ありがとう
私はあなたがしようとしていることについてさらに必要とするかもしれません。私がこれを行うと考えることができる唯一の方法は、あなたがすでに記述している方法でエラープロバイダのコンテナ(フォーム)をチェックすることです。 'FormEntryProvider.Controls.OfType(Of MyErrorProvider)() Next'の各mEP Forコントロールのハンドルを呼び出し側に戻すことができますか? –
@JimmySmith問題は私が思ったよりも複雑です。 **コンポーネント**を返さないため、ソリューションが機能しません。どうやら、フォームからコンポーネントを取得する唯一の方法は、反射を使用することであり、実際には直感的ではありません。 – Renato
Derp、これはコントロールとして見ていたので意味があります。これは毛むくじゃらに見えるかもしれませんが、あなたは[それを使うことができます](http://www.vbforums.com/showthread.php?621192-Get-a-list-of-Components-on-a-Form) –