如何将水平滚动位置设置为指定值?

时间:2014-04-01 16:41:44

标签: c# winforms scroll

我有一个包含非常大的面板的表单。当我设置面板时,我在表单的边缘得到了滚动条。

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

我该怎么做?

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

1 个答案:

答案 0 :(得分: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);
}