dim obj as Object
set obj = Controls.add("Test.Control", "myControl")
obj.top = 30
........
obj.ServerName = "TestServer"运行上面代码的最后一句时报告错误:Objcet doesn't support this property or method
但是 ServerName 属性确实存在的。不知道如何解决此问题,请告诉解答!当然在工程中并没有对这个控件的引用,在引用的前提下必须在界面上托一个此控件才可以用Add方法
set obj = Controls.add("Test.Control", "myControl")
obj.top = 30
........
obj.ServerName = "TestServer"运行上面代码的最后一句时报告错误:Objcet doesn't support this property or method
但是 ServerName 属性确实存在的。不知道如何解决此问题,请告诉解答!当然在工程中并没有对这个控件的引用,在引用的前提下必须在界面上托一个此控件才可以用Add方法
并没有解决我提到的问题。
Left等属性是可以设置的,但是自定义的属性如何赋值呢?
m_strServerName = strServerName
PropertyChanged "ServerName"
End PropertyProperty Get ServerName() As String
ServerName = m_strServerName
End PropertyPrivate Sub UserControl_InitProperties()
ServerName = ""
m_strServerName = ""
End SubPrivate Sub UserControl_ReadProperties(PropBag As PropertyBag)
ServerName = PropBag.ReadProperty("ServerName", "")
End SubPrivate Sub UserControl_WriteProperties(PropBag As PropertyBag)
PropBag.WriteProperty "ServerName", m_strServerName
End Sub
有一个ServerName的属性以下是测试程序代码:
Dim obj As Object
Private Sub Form_Load()
Set obj = Me.Controls.Add("testOcx.TestControl", "test")
obj.Left = 30
obj.Top = 30
obj.Visible = True
obj.ServerName = "testServer"
End Sub
运行到 obj.ServerName = "testServer"
就报告错误
代码已经发送到你的信箱了,请查收!
在窗体上显示时,使用的是oca文件而不是ocx本身。
按照你的步骤做了,还是不行的。
我先把控件编译了,然后再进行测试,还是一样的不行的。另外我测试了控件的公用方法,同样不能使用。难道我的VB有问题?
我的VB是SP5,Windows2000 Professional
如果在工程中引用了此控件,是没有问题的。
我本来不想在工程中引用此控件。
你的方法确实可行,不知道你这样做是否在工程中已经引用了此控件呢?
现在能行的就是需要引用,如果不引用还是不行的。
不知道VB在处理这个方面的操作的原理是什么,按照道理,应该可以不用引用的。莫非VB必须引用,然后对引用的内容在编译的时候进行了解析?