- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C# WindowsForm Button押下判定)
C# WindowsForm Button押下判定
このQ&Aのポイント
- C#でタイマー発火時にボタンが押されているか判定する方法はありますか
- 現在はButtonDownイベントでフラグをONにし、ButtonUpイベントでフラグをOFFにしていますが、ボタンをクリックしたままマウスを移動しボタン上を離れる場合は、ボタン押下は元に戻るのにButtonUpイベントは発行されません。ボタンの状態をすぐに検出したい場合にはどうしたらよいでしょうか。
- C#や.NETとは異なるカテゴリになりますが、Windows Formアプリケーションでボタンが押されているか判定する方法について教えてください。
- みんなの回答 (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); }
お礼
意図した動作ができるようになりました. MouseIsDownというのは,通常のプロパティではなく, メタデータ内の属性と理解しました.(Reflectionは初めて知りました) 本当にありがとうございました.
補足
ありがとうございます. 教えていただいたやり方でいけそうな気がします. 出先のため,週明けに確認してご報告申し上げます.