2014-04-01 60 views
2

我有一个包含非常大的面板的表单。当我设置面板时,我在窗体边缘获得了滚动条。如何将水平滚动位置设置为指定值?

现在,我想将水平滚动条设置到指定的位置,这样当我启动我的应用程序时,滚动条应该位于面板的中间(我想在启动时看到面板的中间位置我的应用程序)。

我怎么能这样做?

我发现可能的解决方案:http://www.codeproject.com/Articles/10839/How-to-change-scrollbars-position-in-a-multiline-t,但问题是它指的是多行文本框。我想为表单做这件事。

回答

2

您可以通过客户端宽度抵消滚动大小设置中间:

protected override void OnLoad(EventArgs e) { 
    base.OnLoad(e); 

    panel1.AutoScroll = false; 
    panel1.AutoScrollMinSize = new Size(1000, 0); 
    panel1.AutoScrollPosition = new Point((panel1.AutoScrollMinSize.Width - 
             panel1.ClientSize.Width)/2, 0); 
} 

既然你有一个面板比形成较大的,你可以尝试这样(我假设面板位于X = 0位置:

protected override void OnLoad(EventArgs e) { 
    base.OnLoad(e); 
    this.AutoScroll = false; 
    this.AutoScrollMinSize = new Size(panel1.Width, 0); 
    this.AutoScrollPosition = new Point((this.AutoScrollMinSize.Width - 
             this.ClientSize.Width)/2, 0); 
} 
相关问题