[英]Is there a way for VB6 to throw a type mismatch error when assigning a variable of the same type?
我试图找出类型不匹配错误的原因,但我不明白它甚至被抛出的原因。 我正在分配一个与分配对象相同类型的变量。
Begin bxControls.starTable m_tblClaims 'Defined at the top of the form file
Dim objTable As PVDataTable5.DataTable
Set objTable = m_tblClaims.Table
Begin PVDataTable5.DataTable dtTable 'Defined at the top of the .ctl file
'Property inside of bxControls.starTable
Public Property Get Table() As Object
Attribute Table.VB_MemberFlags = "40"
Set Table = dtTable
End Property
如您所见,发生的分配不应该有类型不匹配,因为它们是相同的类型。 任何帮助都是极好的。 TIA
尝试这个
Dim objTable As PVDataTable5.DataTable
Set objTable = m_tblClaims.Table.Object
请注意,这可能在 IDE 中有效,但在编译时会失败。
user-controls 的故事大部分完全来自 IDE。 例如,所有用户控制属性/方法都被称为后期绑定,即使 IDE 智能感知看起来调用站点是早期绑定的。
对于当前在 IDE 中加载的每个用户控件类型(例如,作为项目组的一部分),IDE 使用合并的原始控件属性/方法和一些 VB 提供的(如Visible
等)创建代理日期类型来自VBControlExtender
class。
这就是为什么Dim objTable As PVDataTable5.DataTable
有时不是PVDataTable5.DataTable
数据类型的声明,而是 OCA 文件中的代理PVDataTable5.DataTable
的声明,即在 IDE 中加载用户控件时。
传递对 VB6 user-controls 的引用的唯一明智的方法是在加载用户控件和在编译的 OCX 中引用时都有效,是传递VBControlExtender
并使用其Object
访问被包装的引用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.