![](/icons/21256de.gif)
![](/icons/21256yi.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256yi.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou2.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256yi.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou2.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256yi.gif)
Dim xlApp1 As Excel.Application
Set xlApp1 = New Excel.Application
或
Dim xlApp As Object '定义存放引用对象
变量
Set xlApp = CreateObject("excel.application")
xlApp.Visible = True
这些语法很容易造成误导
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256yi.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256yi.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256yi.gif)
![](/icons/21256de.gif)
![](/icons/21256dou2.gif)
![](/icons/21256yi.gif)
ActiveX Control控件是 Visual Basic 工具箱
![](/icons/21256de.gif)
![](/icons/21256dou2.gif)
![](/icons/21256de.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256yi.gif)
![](/icons/21256dou2.gif)
![](/icons/21256chengxu.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256yi.gif)
![](/icons/21256dou.gif)
![](/icons/21256chengxu.gif)
![](/icons/21256de.gif)
![](/icons/21256dou2.gif)
ActiveX 部件通过客户端/服务器关系和应用
![](/icons/21256chengxu.gif)
![](/icons/21256dou2.gif)
![](/icons/21256de.gif)
![](/icons/21256chengxu.gif)
![](/icons/21256dou2.gif)
![](/icons/21256de.gif)
![](/icons/21256dou2.gif)
![](/icons/21256dou.gif)
![](/icons/21256chengxu.gif)
![](/icons/21256yi.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256chengxu.gif)
![](/icons/21256dou2.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256chengxu.gif)
![](/icons/21256de.gif)
![](/icons/21256dou2.gif)
2、加载思路方法
VB6.0中对Controls 集合进行了扩展
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256dou2.gif)
![](/icons/21256yi.gif)
![](/icons/21256de.gif)
![](/icons/21256dou2.gif)
![](/icons/21256de.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou2.gif)
Text1.Text="Hello, world"
其实也可以使用如下代码达到同
![](/icons/21256yi.gif)
![](/icons/21256de.gif)
Controls(1).Text="Hello, world"
在VB6.0中除了原来
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256yinwei.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
Controls.Add(progid as String, Name as String);
progid: ActiveX部件
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
Name:ActiveX部件加载后
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
若要在窗体上添加
![](/icons/21256yi.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
dim oControl as Object '窗体级变量
注意:这里声明为Object对象类型
Private Sub LoadControl![](/icons/21256kh.gif)
Set oControl = Controls.Add
("VB.CommandButton", "MyButton")
oControl.Left = 10
oControl.Top = 10
oControl.Visible = True '使Control控件可见
End Sub
这是VB6.0
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256yi.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256kh.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256dou2.gif)
![](/icons/21256de.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256yi.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256yi.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256de.gif)
![](/icons/21256yi.gif)
Dim WithEvents objElemt as CElemtVBControlExtender也不例外
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256yi.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256de.gif)
![](/icons/21256dou2.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256yi.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou2.gif)
![](/icons/21256de.gif)
![](/icons/21256yi.gif)
Dim WithEvents oControl As VBControlExtender '带事件声明声明的后您就可以在代码窗口
![](/icons/21256de.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256dou2.gif)
Private Sub LoadControl![](/icons/21256kh.gif)
Set oControl = Controls.Add
("VB. CommandButton", "MyButton")
oControl.Visible = True
End Sub
Private Sub oControl_ObjectEvent(Info As EventInfo)
Select Case Info.Name
Case "Click" 'Click事件
'您可以添加处理Click事件代码
MsgBox "您按了MyButton!"
Case Else ' 其他事件
' Handle unknown events here.
End Select
End Sub
当然对微软提供
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256yi.gif)
![](/icons/21256de.gif)
![](/icons/21256dou2.gif)
3、例子描述
假设
![](/icons/21256yi.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256yi.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256yi.gif)
![](/icons/21256dou.gif)
![](/icons/21256yi.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou2.gif)
原理图Control控件为--Theory.ocx
![](/icons/21256dou.gif)
实物图Control控件为---Fact.ocx
![](/icons/21256dou.gif)
注意:为了简化
![](/icons/21256dou.gif)
![](/icons/21256dou2.gif)
实物图Control控件上
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou2.gif)
4、具体举例
1、准备工作
对Control控件Theory.ocx 、Fact.ocx 进行注册(利用Regsvr32.exe注册);
建立窗体frmTest.frm
![](/icons/21256dou.gif)
2、声明窗体级变量和加载
![](/icons/21256hanshu.gif)
Dim WithEvents oControl As VBControlExtender
'地图仿真Control控件对象
Dim mblnTheory As Boolean '是否显示原理图
Private Function LoadControl(
Type As Integer)
If Not oControl Is Nothing Then
'首先判断对象是否存在
若存在则卸载
Controls.Remove("MapView")
'卸载Control控件
此操作非常重要
End If
If
Type = 0 Then
Set oControl = Controls.Add
("CTheory. Theory", "MapView")
Else
Set oControl = Controls.Add
("CFact.Fact", "MapView")
End If
oControl.Height = 3500
oControl.Width = 6500
oControl.Top = 100
oControl.Visible = True
End Function
Private Sub Form_Load![](/icons/21256kh.gif)
mblnTheory = True
End Sub
3、为按钮cmdLoadOcx编写代码
Private Sub cmdLoadOCX_Click![](/icons/21256kh.gif)
If mblnTheory Then
Call LoadControl(0)
mblnTheory = False
cmdLoadOCX.Caption = "实物图"
Else
Call LoadControl(1)
mblnTheory = True
cmdLoadOCX.Caption = "原理图"
End If
End Sub
4、为事件ChangePosition编写代码
Private Sub oControl_ObjectEvent
(Info As EventInfo)
Select Case Info.Name
Case "ChangePosition"
MsgBox CStr(Info.EventParamters.Item(
1).Value) + ":" + _
CStr(Info.EventParamters.Item(2).Value)
Case "DbClick"
'双击处理代码
Case Else '
End Select
End Sub
注意: EventInfo
![](/icons/21256de.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256yi.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256yi.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou2.gif)
5、关闭窗口前卸载Control控件
Private Sub Form_Unload(Cancel As Integer)
Controls.Remove("MapView")
Set oControl = Nothing
End Sub
6、特别注意
通过Controls.Add思路方法添加
![](/icons/21256de.gif)
![](/icons/21256yi.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou2.gif)
5、小结
通过使用动态加载ActiveXControl控件使用庞大
![](/icons/21256de.gif)
![](/icons/21256chengxu.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256chengxu.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256yi.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256yi.gif)
![](/icons/21256dou2.gif)
![](/icons/21256de.gif)
![](/icons/21256de.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
![](/icons/21256dou2.gif)
![](/icons/21256yi.gif)
![](/icons/21256dou.gif)
![](/icons/21256de.gif)
最新评论