同时滚动两个面板c#winForms

时间:2010-03-29 22:12:25

标签: c# winforms scroll panel

是的,我有2个面板,宽度相同,数据宽度相同。顶部面板已启用自动滚动。我希望能够使用顶部面板滚动条滚动两个面板。这意味着底部面板没有滚动条。我该怎么做?

alt text http://members.multimania.co.uk/jeff1524/pics/scrolling.jpg

编辑:我试过panel2.AutoScrollPosition = panel1.AutoScrollPosition; 没有

我也试过

e.Graphics.DrawRectangle(new Pen(Color.Pink,3), 10, 10, 30, 20);
        e.Graphics.TranslateTransform(panel1.AutoScrollPosition.X, 0);

矩形没有移动。 我做错了什么?

2 个答案:

答案 0 :(得分:3)

容易腻。实现第一个面板的Scroll事件,并使其无效()第二个面板。使用1st:

的滚动位置在第二个面板的Paint事件中绘制文本
    private void panel1_Scroll(object sender, ScrollEventArgs e) {
        panel2.Invalidate();
    }

    private void panel2_Paint(object sender, PaintEventArgs e) {
        Point pos = new Point(panel1.AutoScrollPosition.X, 0);
        TextRenderer.DrawText(e.Graphics, "nobugz waz here", panel2.Font, pos, Color.Black);
        // Draw something
        e.Graphics.TranslateTransform(pos.X, pos.Y);
        e.Graphics.DrawLine(Pens.Black, 0, 0, 100, 100);
    }

答案 1 :(得分:0)

更容易。

只需将面板放在另一个具有滚动条的面板中(AutoScroll = true)。 我已经用过这个策略了。