我在ListBox中有4个项目,每个项目在点击时都会执行特定的操作。
但我也希望双击事件与click事件做同样的事情。
我可以将click事件中的所有代码复制并粘贴到双击事件中,但是你有很多代码挤占代码页做同样的事情。那该怎么办呢?
示例:
Private Sub listBox1_DoubleClick(ByVal sender As Object, ByVal e As EventArgs) _
Handles listBox1.DoubleClick
if listbox1.doubleclick then do the same thing in listbox1.clickevent
end if
End Sub
答案 0 :(得分:3)
相同的例程可以处理这两个事件。代码:
Private Sub ListBox1_AllClicks(
ByVal sender As Object, ByVal e As System.EventArgs)
Handles ListBox1.Click, ListBox1.DoubleClick
您可以在列表框属性中进行设置:查看事件并使用DoubleClick旁边的下拉列表选择现有例程。
答案 1 :(得分:2)
尝试以下代码!
Private Sub ListBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.Click
ListBox1_DoubleClick(sender, e)
End Sub
Private Sub ListBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.DoubleClick
MsgBox(ListBox1.Items.Count)
End Sub
答案 2 :(得分:0)
这些解决方案仅在要执行的代码可用于类(A类)时才有效,如果您正在构建库,则可能不是这种情况。如果应该执行相同代码的控件在一个将在另一个类(B类)中实例化的类中,并且instatiating类是将要定义的代码,那么你可以这样做:
A类
Public Event ListDoubleClickOrClick()
Private Sub HandleListDoubleClickOrClick(sender As Object, e As System.EventArgs) Handles listObject.DoubleClick, listObject.Click
RaiseEvent ListDoubleClickOrClick()
End Sub
B类
private sub theCodeToBeExecuted()
end sub
dim objClassA as A
AddHandler objClassA.ListDoubleClickOrClick, AddressOf theCodeToBeExecuted