0

だから私が持っているのは、DockStyle.Top を使用してカスタム コントロールでプログラム的に埋められたパネルです。

私が必要とするのは、ユーザーがマウスホイールを使用してパネルをスクロールできるように、マウスカーソルがパネルに入ったときにパネルに何らかの形でフォーカスを当てることです。

何百ものコントロールが存在する可能性があるため、各コントロールにハンドラーを与えたくありません。

1 つの方法は、マウスの位置を確認し、パネルに含まれているかどうかを確認することです。これにはおそらく追加のスレッドまたはマウスフックが必要ですが、もっと良い方法があるでしょうか?

4

1 に答える 1

2

同様の質問への回答としてAmenAyachMouseDetector classによる投稿を実装し、マウスを置いたときにフォームをアクティブにすることができます。

void m_MouseMove(object sender, Point p)
{
    Point pt = this.PointToClient(p);
    if (this.ClientSize.Width >= pt.X &&
                    this.ClientSize.Height >= pt.Y &&
                    pt.X > 0 && pt.Y > 0)
    {
        this.Activate();
    }
}

Panelまた、のAutoScroll値をに設定する必要がありますtrue

panel.AutoScroll = true;
于 2013-01-29T08:00:05.587 に答える