2015-11-28 2 views
-1

Итак, у меня есть инструмент, который пингует оборудование, все полностью закодированное и работает. Но я хочу внести изменения и хочу посмотреть, есть ли простой/умный/лучший способ сделать это.Лучший способ заполнить событие Click?

Текущий код:

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 

Теперь я хочу, чтобы добавить опцию RightClick, и только так, как я знаю, это сделать полный overhall по коду, и что основно перекодирования все. Вот как я работаю, но хочу изменить, чтобы было легче изменить все.

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 

Любой лучший способ сделать это?

Заранее спасибо

ответ

1

Looks как код одинаков для вызова 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 
+0

Это выглядит достаточно просто, я вижу, что не могу использовать событие «Click» для e.button. Это верно? В этом случае также больно – dwb

+0

Правильно ... потому что это не стандартная практика, чтобы обеспечить разные действия с помощью прямого ** прямого щелчка правой кнопкой мыши. Обычно у вас появляется контекстное меню справа. Нажмите, чтобы показать, что может быть достигнуто что-то другое. –

Смежные вопросы