将自定义滚动条与面板相关联

时间:2012-09-13 09:24:45

标签: c# .net winforms scroll scrollbar

我希望自定义水平滚动条比我想用它滚动的面板宽度更长。怎么连接?

ScrollBar hScrollBar = new HScrollBar();
        hScrollBar.Dock = DockStyle.Fill;
        ScrollBar.Scroll += new ScrollEventHandler(hScrollBar_Scroll);
        splitContainer2.Panel2.Controls.Add(hScrollBar);

    void hScrollBar_Scroll(object sender, ScrollEventArgs e)
    {
        ?
    }

1 个答案:

答案 0 :(得分:1)

你的意思是这样吗?

1

2

只需将控件放在面板中,调整表单大小并输入此代码

即可
panel1.AutoScroll=true;
在InitializeComponent之后

如果你想要一个“真正的自定义”滚动条,做这样的事情:

hScrollBar.Maximum=700;
hScrollBar.Value=0;
hScrollBar.Scroll+=delegate (object sender, ScrollEventArgs e)
{
    int diference=e.OldValue-e.NewValue;
    foreach (Control c in panel1.Controls) c.Location=new Point (c.Location.X+diference, c.Location.Y);
};

但是你必须找到最大值,在我的情况下是aprox 700。