0

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

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)
    {
        ?
    }
4

1 回答 1

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);
};

但是你必须找到最大值,在我的例子中大约是 700。

于 2012-09-16T18:16:48.513 回答