2

128 個の小さなフォームがすべて 1 つの大きな FlowLayoutPanel に配置されています。128 の各フォームには、独自の onPaint オーバーライドがあります。

    protected override void OnPaint(PaintEventArgs e)
    {
        foreach (CustomSquare cs in this.customSquares)
        {
            this.formGraphics.FillRectangle(cs.colorBrush, cs.boundingRectangle);
        }
    }

また、各テーブルには MouseHover が実装されています。

    public void customView_MouseHover(object sender, EventArgs e)
    {
        Debug.Print("greetings from table " + this.getTableNumber());
    }

マウスが次のようにテーブル間を切り替えると、イベント ハンドラーが繰り返し簡単に起動するようになりました。

greetings from table 3
greetings from table 0
greetings from table 3
greetings from table 0
greetings from table 1

しかし、次のように、小さなマウスの動きや、同じテーブルのディメンション内での動きを使用して、同じテーブルで EventHandler を繰り返し起動させるのは非常に困難です。

greetings from table 0
greetings from table 0
greetings from table 0

プログラムの主な機能では、ユーザーのマウスが 128 のフォームのどれにあるかを非常に頻繁かつ一貫して知る必要があり、MouseHover イベントを使用するのが最善の方法のように思えましたが、もっと頻繁に発生させたいと思います。

4

1 に答える 1