1

在 Visual Studio 2008 上,我有一个 System.Windows.Forms.TabPage 实例。

TabPage 上有很多控件。

因此,TabPage 上有一个垂直滚动条。

很多次,所有控件都均匀地向下移动,从而在 TabPage 的顶部产生大量空白空间。我必须向下滚动才能查看第一个控件,它应该位于 TabPage 的顶部。这发生在 Visual Studio 中,随后也发生在运行时。

似乎没有任何事件触发这种转变。它只是发生。查看每个控件的 Location 属性表明它们都向下移动了相同的值。

我不得不手动修复这个好几次。然后问题又回来了,通常是几天后。我可以处理表格。这看起来不错的样子。关闭它。稍后再回来,控件都已向下移动了一个固定的量。

7 月 14 日,更多信息

Visual Studio 2008 正在改变这一点:

this.groupBoxTrees.Location = new System.Drawing.Point(3, 3);

对此:

this.groupBoxTrees.Location = new System.Drawing.Point(3, 1030);

为什么?什么时候?是什么原因?我不知道。

请注意,值 1030 也是随机的。我只能说,出于某种原因,VS 为 TabPage 上每个控件的每个 Location.Y 属性添加了一个常量值。所有控件都被锁定。

有什么建议么?

谢谢!

4

1 回答 1

2

感谢一位同事,我发现出了什么问题。

如果在 TabPage 上的滚动条向下移动时保存表单,Visual Studio Studio 会在 TabPage 上每个控件的 Location.Y 中添加一个数字。该值与滚动条向下移动的距离相关。

可以通过在保存表单所做的更改之前始终将滚动条移动到表单顶部来防止该问题。

为什么会这样?我没有办法知道。这可能与我使用两台显示器有关。但是话又说回来,如果这有助于导致问题,那么您会认为 Location.X 会被更改,而不是 Location.Y。

于 2012-07-15T19:53:01.357 回答