ActiveX控件的对象属性为什么没有出现在属性窗口中
编号:QA001782
建立日期: 1999年9月27日 最后修改日期:1999年9月27日
所属类别:
stupid_bird:
vb6
我在控件代码窗口中加入如下代码:
Dim m_Connection As ADODB.Connection
Public Property Get Connection() As ADODB.Connection
Set Connection = m_Connection
End Property
Public Property Set Connection(ByVal New_Connection As ADODB.Connection)
Set m_Connection = New_Connection
PropertyChanged "Connection"
End Property
'Load property values from storage
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
Set m_Connection = PropBag.ReadProperty("Connection", Nothing)
End Sub
'Write property values to storage
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("Connection", m_Connection, Nothing)
End Sub
即:加入Connection属性,但在使用该控件时,该属性却没有显示在属性页中。我在procedure attribute中并没有将don't show in property browser选中。
回答:
ADODB.Connection类型并不是ActiveX控件的标准类型,而属于对象类型, 如果一个对象属性出现在属性窗口中,则 Property Get函数在设计时必须返回一个字符串,这个字符串将出现在Visual Basic的属性窗口中。例如Picture属性可以返回"(None)"、"(Bitmap)"等字符串表示其状态。如:
Public Property Get Connection() As Variant
If Ambient.UserMode Then
' 按对象处理
Else
Connection = "......."
End If
.........
End Property
由于无法调用VB默认的Connection属性设置属性页,所以必须自行编写有关代码,这当然比较麻烦,所以建议实现ConnectionString属性。
此问题由李海回答。
| |
|
|
| |
|
|