- ベストアンサー
ボタンの検知と要約文
- ボタンのプログラムでボタンを押すたびに「■」が増える方法について教えてください。
- 「ボタンを押しままにすると」ボタンの「■」が増え続ける方法について教えてください。
- ボタンの押下状態を検知する方法について教えてください。タイマーを使用して「■」が増えるようにしたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Button1のMouseDown, MouseUp, KeyDown, KeyUp各イベントの中に書けばOKです。 Private Sub Button1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Button1.KeyDown ' スペースキーが押された If e.KeyCode = Windows.Forms.Keys.Space Then ' ここでタイマースタート End If End Sub Private Sub Button1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Button1.KeyUp ' スペースキーを放した If e.KeyCode = Windows.Forms.Keys.Space Then ' ここでタイマー停止 End If End Sub Private Sub Button1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseDown ' マウスの左ボタンを押した If e.Button = Windows.Forms.MouseButtons.Left Then ' ここでタイマースタート End If End Sub Private Sub Button1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseUp ' マウスの左ボタンを放した If e.Button = Windows.Forms.MouseButtons.Left Then ' ここでタイマー停止 End If End Sub っと大事なことを忘れていました。 KeyDownイベントはキーを押している間、一定間隔でKeyDownイベントが発生し続けます。タイマーがすでに稼動している時は何も処理しないようにしたほうがよいでしょう。MouseDownとMouseUpはマウスボタン1回のクリックにつきそれぞれ1回ずつしか発生しません。
その他の回答 (1)
- うぃず(@Wizard_Zero)
- ベストアンサー率69% (344/495)
月並みですが、MouseDownからMouseUpが発生するまで、スペースキーのKeyDownからKeyUpが発生するまで「ボタンが押されている」と判断できます。 MouseDown/KeyDownでタイマーを開始し、MouseUp/KeyUpでタイマーを停止すればご希望の動作になると思います。
お礼
早速回答ありがとうございます。 オブジェクトに対して何か書き込んでいくイメージが強いのですが、 この場合「Button1」に対してどのように「MouseDown」を書けばよいのでしょうか? 検索してもわからないのでお教えいただけませんでしょうか。
お礼
できました。お手数おかけしました。 ありがとうございます。