[C#]ボタンに関するマウスイベントはこうなっている
わけあって、ボタンが押しっぱなしの時の処理を書くことになった。標準のイベントではなさそうなのだが、スクロールバーの上下(もしくは左右)にある▲▼ボタンは押しっぱなしにすると、スクロールゲージが移動していく。きっとタイマなどを使ってやらないとだめそうだ。
んで、ボタンをクリックしたときのイベントってどないなっとんやー?ということで調べてみたのが以下のプログラム。
※だいぶ端折ってます
class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
private System.IO.StreamWriter m_sWriter;public Form1()
{
InitializeComponent();
System.IO.FileInfo fInfo = new System.IO.FileInof("log.txt");
m_sWriter = fInfo.CreateText();
m_sWriter.WriteLine("start");
m_sWriter.Flush();
}protected override void Dispose( bool disposing )
{
// 略
m_sWriter.Close();
}private void button1_Click(...)
{
m_sWriter.WriteLine("button1_Click");
m_sWriter.Flush();
}private void button1_MouseDown(...)
{
m_sWriter.WiretLine("button1_MouseDown");
m_sWriter.Flush();
}private void button1_MouseUp(...)
{
m_sWriter.WriteLine("button1_MouseUp");
m_sWriter.Flush();
}
}
で、ボタンを押すと、
とログファイルに記述される。
button1_MouseDown
button1_Click
button1_MouseUp
また、ボタンを押して、そのまま押しながらマウスカーソルをボタンの領域外まで持っていくと、
となりました。
button1_MouseDown
button1_MouseUp
なので、ボタンの押しっぱなし処理を実装するには、MouseDownでタイマ起動、MouseUpされるたらタイマ待機、というようになりそう。