例如要调用:Public Sub Some_Procedure(S As String)
MsgBox "你的名字是:" & S
End Sub那应该如何将事件响应类连接到页面的按钮??

解决方案 »

  1.   

    对编写脚本熟悉的读者都知道页面中可以添加脚本响应元素的事件,例如超链接的OnClick事件,图片的OnMouseMove事件,我们也可以使VB程序响应这些事件。下面是一个VB响应页面中按钮的Click事件的代码: 
    首先建立一个新工程,在Form1中加入一个Webbrowser控件,然后在Form1中加入以下代码: Option Explicit Public Sub Some_Procedure() 
    MsgBox "你点击了按钮." 
    End Sub Private Sub Form_Load() 
    '下载空页面 
    WebBrowser1.Navigate2 "about:blank" 
    End Sub Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) 
    '建立事件响应类 
    Dim cfForward As clsForward '定义在浏览器中显示的HTML代码,其中包含一个按钮btnMyButton 
    Dim sHTML As String 
    sHTML = "<P>This is some text.</P>" 
    sHTML = sHTML & "<P>And here is a button.</P>" 
    sHTML = sHTML & "<BUTTON ID=btnMyButton>" 
    sHTML = sHTML & "Click this button.</BUTTON>" '将HTML代码写入浏览器 
    WebBrowser1.Document.body.innerHTML = sHTML '将事件响应类连接到页面的按钮btnMyButton上 
    Set cfForward = New clsForward 
    cfForward.Set_Destination Me, "Some_Procedure" 
    WebBrowser1.Document.All("btnMyButton").onclick = cfForward 
    End Sub 向工程中添加一个Class Module,Class Module的Name属性设定为clsForward,在clsForward中添加以下代码: Option Explicit Dim oObject As Object 
    Dim sMethod As String 
    Dim bInstantiated As Boolean Private Sub Class_Initialize() 
    bInstantiated = False 
    End Sub Public Sub Set_Destination(oInObject As Object, sInMethod As String) 
    Set oObject = oInObject 
    sMethod = sInMethod 
    bInstantiated = True 
    End Sub Public Sub My_Default_Method() 
    If bInstantiated Then 
    CallByName oObject, sMethod, VbMethod 
    End If 
    End Sub 运行程序,点击Webbrowser中的“Click this button”按钮。程序就会弹出消息框提示“你点击了按钮.”
      

  2.   

    Public Sub My_Default_Method()
    If bInstantiated Then
    CallByName oObject, sMethod, VbMethod, "test"
    End If
    End Sub
    其余的不变