Vb.net 完成点击事件的更好方法?

Vb.net 完成点击事件的更好方法?,vb.net,Vb.net,因此,我有一个工具,ping设备,所有完全编码和工作。但是,我想做一个改变,想看看是否有一个简单/聪明/更好的方法来做到这一点 当前代码: Private Sub BKUPingIcon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BKUPingIcon.Click Shell("ping " & BKUBox.Text & " -t", AppWinStyle.No

因此,我有一个工具,ping设备,所有完全编码和工作。但是,我想做一个改变,想看看是否有一个简单/聪明/更好的方法来做到这一点

当前代码:

 Private Sub BKUPingIcon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BKUPingIcon.Click
    Shell("ping " & BKUBox.Text & " -t", AppWinStyle.NormalFocus)
    Try
        If My.Computer.Network.Ping(BKUBox.Text) Then
            'Online
            If GetPingMs(BKUBox.Text) < 125 Then
                'Good ping
                BKUPingIcon.Image = My.Resources.PingUP
            Else
                'Bad ping
                BKUPingIcon.Image = My.Resources.PingHIGH
            End If
        Else
            BKUPingIcon.Image = My.Resources.PingDOWN
            'Offline
        End If
    Catch
    End Try
End Sub
Private Sub BKUPingIcon_Click(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理BKUPingIcon。单击
Shell(“ping”和BKUBox.Text&“-t”,AppWinStyle.NormalFocus)
尝试
如果My.Computer.Network.Ping(BKUBox.Text)那么
“在线
如果GetPingMs(BKUBox.Text)<125,则
“平好
BKUPingIcon.Image=My.Resources.PingUP
其他的
“坏平
BKUPingIcon.Image=My.Resources.PingHIGH
如果结束
其他的
BKUPingIcon.Image=My.Resources.PingDOWN
"离线",
如果结束
抓住
结束尝试
端接头
现在,我想添加一个右键单击选项,我知道的唯一方法是对代码进行彻底的修改,这就是基本上重新编码所有内容。这就是我让它工作的方式,但我想改变,使它更容易改变一切

Private Sub PRIPingIcon_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PRIPingIcon.MouseClick
    If e.Button = Windows.Forms.MouseButtons.Right Then
        Try
            If My.Computer.Network.Ping(PRIBox.Text) Then
                'Online
                If GetPingMs(PRIBox.Text) < 125 Then
                    'Good ping
                    PRIPingIcon.Image = My.Resources.PingUP
                Else
                    'Bad ping
                    PRIPingIcon.Image = My.Resources.PingHIGH
                End If
            Else
                PRIPingIcon.Image = My.Resources.PingDOWN
                'Offline
            End If

        Catch
        End Try
    Else
        Shell("ping " & PRIBox.Text & " -t", AppWinStyle.NormalFocus)
        Try
            If My.Computer.Network.Ping(PRIBox.Text) Then
                'Online
                If GetPingMs(PRIBox.Text) < 125 Then
                    'Good ping
                    PRIPingIcon.Image = My.Resources.PingUP
                Else
                    'Bad ping
                    PRIPingIcon.Image = My.Resources.PingHIGH
                End If
            Else
                PRIPingIcon.Image = My.Resources.PingDOWN
                'Offline
            End If
        Catch
        End Try
    End If
End Sub
Private Sub PRIPingIcon\u MouseClick(ByVal sender作为System.Object,ByVal e作为System.Windows.Forms.MouseEventArgs)处理PRIPingIcon.MouseClick
如果e.Button=Windows.Forms.MouseButtons.Right,则
尝试
如果My.Computer.Network.Ping(PRIBox.Text)那么
“在线
如果GetPingMs(PRIBox.Text)<125,则
“平好
PRIPingIcon.Image=My.Resources.PingUP
其他的
“坏平
PRIPingIcon.Image=My.Resources.PingHIGH
如果结束
其他的
PRIPingIcon.Image=My.Resources.PingDOWN
"离线",
如果结束
抓住
结束尝试
其他的
Shell(“ping”和PRIBox.Text&“t”,AppWinStyle.NormalFocus)
尝试
如果My.Computer.Network.Ping(PRIBox.Text)那么
“在线
如果GetPingMs(PRIBox.Text)<125,则
“平好
PRIPingIcon.Image=My.Resources.PingUP
其他的
“坏平
PRIPingIcon.Image=My.Resources.PingHIGH
如果结束
其他的
PRIPingIcon.Image=My.Resources.PingDOWN
"离线",
如果结束
抓住
结束尝试
如果结束
端接头
有更好的方法吗


“提前感谢”

除了Shell()调用之外,代码似乎是相同的,因此:

Private Sub PRIPingIcon_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PRIPingIcon.MouseClick
    If e.Button = Windows.Forms.MouseButtons.Left Then
        Shell("ping " & PRIBox.Text & " -t", AppWinStyle.NormalFocus)
    End If
    Try
        If My.Computer.Network.Ping(PRIBox.Text) Then
            'Online
            If GetPingMs(PRIBox.Text) < 125 Then
                'Good ping
                PRIPingIcon.Image = My.Resources.PingUP
            Else
                'Bad ping
                PRIPingIcon.Image = My.Resources.PingHIGH
            End If
        Else
            PRIPingIcon.Image = My.Resources.PingDOWN
            'Offline
        End If
    Catch
    End Try
End Sub
Private Sub PRIPingIcon\u MouseClick(ByVal sender作为System.Object,ByVal e作为System.Windows.Forms.MouseEventArgs)处理PRIPingIcon.MouseClick
如果e.Button=Windows.Forms.MouseButtons.Left,则
Shell(“ping”和PRIBox.Text&“t”,AppWinStyle.NormalFocus)
如果结束
尝试
如果My.Computer.Network.Ping(PRIBox.Text)那么
“在线
如果GetPingMs(PRIBox.Text)<125,则
“平好
PRIPingIcon.Image=My.Resources.PingUP
其他的
“坏平
PRIPingIcon.Image=My.Resources.PingHIGH
如果结束
其他的
PRIPingIcon.Image=My.Resources.PingDOWN
"离线",
如果结束
抓住
结束尝试
端接头

这看起来很简单,但我确实发现我不能将事件“单击”用于e按钮。对吗?在这种情况下,这也是一种痛苦,因为直接右键点击并不是提供不同行为的标准做法。通常,右键单击会出现一个上下文菜单,显示可以实现不同的功能。