2017-05-19 13 views
-1

ボタンを押すとボタンが無効になり、マウスの座標を選択できます。 (右クリックで)、ボタンを元に戻します。タイマを保持したまま、if文に対してbutton1が押されたかどうかをどのように検出しますか?Ifステートメントでbutton1が押されたかどうかを検出する方法。 VB.NET

If Button1.clicked Then 

ここで、button1が押されたことを検出するIf文が必要です。

Private Sub Timer2_Tick(sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick 
    If Button1.clicked Then 
     Button1.Enabled = False 
     If GetAsyncKeyState(2) Then 
      TextBox1.Text = Cursor.Position.X 
      TextBox2.Text = Cursor.Position.Y 
      Button1.Enabled = True 
     End If 
    End If 
End Sub 
+1

ボタンの代わりにCheckBoxを使用すると、 'Checked'プロパティをチェックできます。ボタンを使用してタイマを起動/停止することもできます – Plutonix

+0

本当にこのようにしたい場合は、 "pressed"というフォームレベル変数を作成し、ボタンのMouseDownイベントでtrueに設定し、MouseUpイベントでfalseに設定します。 – LarsTech

+1

@LarsTech Yea - それはOPの利益のためであった、もちろん – Plutonix

答えて

0

@the_lotusの助けを借りて、私はタイマー/ボタンの問題を回避する方法を見つけました。 timerステートメント内でボタンを押すのではなく、タイマーがオンかオフかを制御します。

ロータスはまた、タイマーの背後にある推論を求めました。タイマーは、ボタンが押されたときだけでなく、フォームが常に入力を探します。

Private Sub Button1_Click(sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Button1.Enabled = False 
    Timer2.Interval = 5 
    Timer2.Enabled = True 
    Me.Button1.Text = "Set Posistion 1" 
End Sub 

Sub Timer2_Tick() Handles Timer2.Tick 
    If GetAsyncKeyState(2) Then 
     TextBox1.Text = Cursor.Position.X 
     TextBox2.Text = Cursor.Position.Y 
     Button1.Enabled = True 
     Timer2.Enabled = False 
     Me.Button1.Text = "Reset Position" 
    End If 
End Sub 
関連する問題