将单击的键按钮的值返回到Sub

时间:2015-12-23 11:34:13

标签: html vbscript hta

我准备了HTA并在其中使用了VBScript。 我有一个要求,其中我必须根据用户点击的按钮处理某些逻辑。我在表单中有3个按钮。现在,根据是否点击了A,B或C,我必须继续进行。有没有办法在单击按钮后立即将按钮的值传递给Sub,以便我们可以使用相应的逻辑进一步处理?

1 个答案:

答案 0 :(得分:2)

通常的方法是为每个按钮定义单独的过程:

Sub BtnA_Click
  'logic for button A
End Sub

Sub BtnB_Click
  'logic for button B
End Sub

Sub BtnC_Click
  'logic for button C
End Sub

并将它们指定为相应按钮的onClick事件处理程序:

<input type="button" id="A" onClick="VBScript:BtnA_Click()" ...>
<input type="button" id="B" onClick="VBScript:BtnB_Click()" ...>
<input type="button" id="C" onClick="VBScript:BtnC_Click()" ...>

如果您的按钮调用非常相似的功能,您可以使每个点击过程使用参数调用公共工作器函数:

Sub DoWork(param)
  Select param
    Case "A": ...
    Case "B": ...
    ...
  End Select
  ...
End Sub

Sub BtnA_Click
  DoWork "A"
End Sub

Sub BtnB_Click
  DoWork "B"
End Sub
...

或者您也可以让onClick处理程序使用单个参数调用相同的函数:

<input type="button" id="A" onClick='VBScript:DoWork("A")' ...>
<input type="button" id="B" onClick='VBScript:DoWork("B")' ...>
...

你甚至可以让每个按钮调用不带参数的相同功能:

<input type="button" id="A" onClick="VBScript:DoWork()" ...>
<input type="button" id="B" onClick="VBScript:DoWork()" ...>
...

并通过event source element

的ID区分按钮
Sub DoWork
  Select window.event.srcelement.id
    Case "A": ...
    Case "B": ...
    ...
  End Select
  ...
End Sub