日期:2014-05-19  浏览次数:20640 次

WinForm中的控件都通过Dock定位,但不知道为什么有时会出现所有控件都整体上移?
问题描述:
WinForm窗体中有三个Panel,Dock分别设置为Top、Top、Fill,
窗体最小化或被其他窗体覆盖,运行一段时间后,切换回窗体,发现窗体中的这三个Panel都整体往上移了100px。在一次调试过程中也发现了该问题,然后经过进一步调试发现这个时候的窗体的DisplayRectangle的Y坐标为-100,AutoScrollPosition的值为(0,-100)。另外,我发现窗体默认的垂直滚动条的Maximum的值为100,所以我猜想是不是由于垂直滚动条滚到了最大值的原因。如果是这个原因,那为什么垂直滚动条会自动滚动到最大值。窗体的AutoScroll属性默认是设置为Fales,所以无论如何窗体的滚动条应该不会出现才对,但是像我上面描述的情况就是会偶尔发生。令我更不可思议的是,当我的程序出项上述问题时,其他运行着的.net应用程序也会收到影响,出现同样的情况,即里面的控件都整体上移了100。

不知道大家是否遇到过类似问题,我想了很长时间都不知道问题的根本原因是什么?

------解决方案--------------------