如何在单击事件中运行相同的代码作为双击事件?

时间:2012-03-04 08:55:12

标签: vb.net

我在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

3 个答案:

答案 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