私はSuperValidator
タイプのすべてのフォームでSuperValidator1という名前のコントロールを持っています。私はこのコントロールを見つけて、名前がすべての形式で一貫しているので名前を使用して有効にしたい。そう、これは私が思いついたコードです:キャストを使用して変換コントロールを変換しない
Dim validator As SuperValidator
Dim frm As Form = Me.ParentForm
Dim ctrl As Control()
ctrl = frm.Controls.Find("SuperValidator1", True)
Dim singleCtrl As Control = ctrl(0)
validator = TryCast(singleCtrl, SuperValidator) '< ERROR LINE
それは、エディタのエラーがスローされます:Value of Type 'Control' cannot be converted to 'SuperValidator'
私はCType
とDirectCast
を試みたが、それは同じです。 thisによると、私は任意のデータ型をキャストできる必要があります。何が間違っていて、私は何をすべきですか?ところで
SuperValidator
はここで感謝
。 – dbasnett
あなたはコントロールとしてsingleCtrlを定義していますが、それをバリデータとしてキャストしようとしていますが、それは起こりません。あなたは、データ型を変更する必要があります....あなたは実際にあなたが正しいコントロールを取得していることを確認するために、TypeOfチェックを行うことですべてを検証できます。 – Codexer
'SuperValidator'は[本当にコンポーネントです**](http://www.devcomponents.com/kb2/?p=475)。 –