我准备了HTA并在其中使用了VBScript。
我有一个要求,其中我必须根据用户点击的按钮处理某些逻辑。我在表单中有3个按钮。现在,根据是否点击了A,B或C,我必须继续进行。有没有办法在单击按钮后立即将按钮的值传递给Sub
,以便我们可以使用相应的逻辑进一步处理?
答案 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()" ...>
...
的ID区分按钮
Sub DoWork
Select window.event.srcelement.id
Case "A": ...
Case "B": ...
...
End Select
...
End Sub