VB6プロジェクトをC#.netに変換しています。
VB6コードはです。
Dim ctlControl As VB.VBControlExtender
Dim objControl As DocSys.IControl
If blnRetVal Then
' get IControl interface
On Error Resume Next
Set objControl = ctlControl.object
blnRetVal = objControl.Load(strName, ndControl, objField, objTab.Model)
その中で、ユーザーコントロールは動的に使用しています。
objControlのタイプは、インターフェイスであるIControlです。IControlは、(Button、Chekbox、Addressなど)のような多くのユーザーコントロールに実装されています。
このコードをC#.netに変換しています。
コードは
Control ctlControl = new Control();
DocSys.IControl objControl = default(DocSys.IControl);
if (blnRetVal)
{
objControl = (IControl)ctlControl;
blnRetVal = objControl.Load(strName, ndControl, objField, objTab.Model);
}
例外ctlControlが表示されます。
Cannot cast 'ctlControl' (which has an actual type of 'System.Windows.Forms.Control') to 'DocSys.IControl' DocSys.IControl