• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C# WindowsForm Button押下判定)

C# WindowsForm Button押下判定

このQ&Aのポイント
  • C#でタイマー発火時にボタンが押されているか判定する方法はありますか
  • 現在はButtonDownイベントでフラグをONにし、ButtonUpイベントでフラグをOFFにしていますが、ボタンをクリックしたままマウスを移動しボタン上を離れる場合は、ボタン押下は元に戻るのにButtonUpイベントは発行されません。ボタンの状態をすぐに検出したい場合にはどうしたらよいでしょうか。
  • C#や.NETとは異なるカテゴリになりますが、Windows Formアプリケーションでボタンが押されているか判定する方法について教えてください。

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

  • ベストアンサー
  • byDesign
  • ベストアンサー率75% (45/60)
回答No.1

タイマーの中でボタンが押されてるの判定したいのでしょか? であれば以下でどうでしょうか? private void timer1_Tick(object sender, EventArgs e) { var button = this.button1; var isDown = (bool)typeof(Button).GetProperty("MouseIsDown", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).GetValue(button, null); System.Diagnostics.Debug.WriteLine(isDown); }

risoutogenjitsu
質問者

お礼

意図した動作ができるようになりました. MouseIsDownというのは,通常のプロパティではなく, メタデータ内の属性と理解しました.(Reflectionは初めて知りました) 本当にありがとうございました.

risoutogenjitsu
質問者

補足

ありがとうございます. 教えていただいたやり方でいけそうな気がします. 出先のため,週明けに確認してご報告申し上げます.

関連するQ&A