15

たくさんのコントロールを備えたフォームがあります。マウスが下がっているのか、上にあるのかを検出する必要があります。ほとんどの場合、私はMouseEventArgsを持っていません。

mouseEventArgsなしでマウスがダウンしているかどうかをすばやく簡単に判断する方法はありますか?

代替手段はありますか、それともこのようなものが唯一の方法ですか?:

foreach (Control c in this.Controls)
{
    c.MouseUp += new MouseEventHandler(globalMouseUp);
    c.MouseDown += new MouseEventHandler(globalMouseDown);
}


bool isMouseUp = true;


private void globalMouseDown(object sender, MouseEventArgs e)
{
    isMouseUp = false;
}

private void globalMouseUp(object sender, MouseEventArgs e)
{
    isMouseUp = true;
}
4

2 に答える 2

25

タイマーでチェックしてみることができます:

private void timer1_Tick(object sender, EventArgs e) {
  this.Text = "Mouse Is " + (Control.MouseButtons == MouseButtons.Left);
}
于 2012-05-30T16:59:58.000 に答える