2013-11-10 6 views
0

У меня возникла небольшая проблема с некоторой функциональностью для некоторых кнопок в визуальном базисе.Уменьшение и увеличение значения для кнопки вправо/левом щелчке

Что я хочу, что значение (текст) увеличивается на 1 на левой-Mouseclick и снижение на 1 на rightMouseclick Код:

Private Sub buttons_Click(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles button1.Click, button2.Click..... 
Dim this_button As Button = CType(sender, Button) 
(...) 
If e.Button = Windows.Forms.MouseButtons.Left Then 
this_button.Text = Trim(Str(CInt(this_button.Text) + 1)) 
ElseIf e.Button = Windows.Forms.MouseButtons.Right Then 
this_button.Text = Trim(Str(CInt(this_button.Text) - 1)) 
End If 
+1

И проблема? –

ответ

1

Вы должны использовать либо MouseDown() или MouseUp() событие дифференцироваться кнопка, которая использовалась:

Private Sub buttons_Click(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles button1.MouseDown, button2.MouseDown, .... 
    Dim this_button As Button = CType(sender, Button) 
    (...) 
    If e.Button = Windows.Forms.MouseButtons.Left Then 
     this_button.Text = Trim(Str(CInt(this_button.Text) + 1)) 
    ElseIf e.Button = Windows.Forms.MouseButtons.Right Then 
     this_button.Text = Trim(Str(CInt(this_button.Text) - 1)) 
    End If 
End Sub 
+0

Да, это сработало :)! спасибо – Freshman

0

Я не уверен, что проблема: вы Ждут» t делить любую ошибку или неправильное поведение. Но я хотел бы предложить следующие изменения:

Private Sub buttons_Click(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles button1.Click, button2.Click..... 

    Dim this_button As Button = DirectCast(sender, Button) 
    ' (...) 

    Dim buttonValue As Integer = CInt(this_button.Text) 
    If e.Button = Windows.Forms.MouseButtons.Left Then 
     this_button.Text = (buttonValue + 1).ToString() 
    ElseIf e.Button = Windows.Forms.MouseButtons.Right Then 
     this_button.Text = (buttonValue - 1).ToString() 
    End If 
End Sub