• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ボタンの検知)

ボタンの検知と要約文

このQ&Aのポイント
  • ボタンのプログラムでボタンを押すたびに「■」が増える方法について教えてください。
  • 「ボタンを押しままにすると」ボタンの「■」が増え続ける方法について教えてください。
  • ボタンの押下状態を検知する方法について教えてください。タイマーを使用して「■」が増えるようにしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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回ずつしか発生しません。

denza
質問者

お礼

できました。お手数おかけしました。 ありがとうございます。

その他の回答 (1)

回答No.1

月並みですが、MouseDownからMouseUpが発生するまで、スペースキーのKeyDownからKeyUpが発生するまで「ボタンが押されている」と判断できます。 MouseDown/KeyDownでタイマーを開始し、MouseUp/KeyUpでタイマーを停止すればご希望の動作になると思います。

denza
質問者

お礼

早速回答ありがとうございます。 オブジェクトに対して何か書き込んでいくイメージが強いのですが、 この場合「Button1」に対してどのように「MouseDown」を書けばよいのでしょうか? 検索してもわからないのでお教えいただけませんでしょうか。

関連するQ&A

専門家に質問してみよう