在我目前正在编写的 Windows 窗体应用程序的主窗体上,我有一个带有左右面板的 SplitContainer。右侧面板中将其锚点设置为右侧(或右侧和左侧)的控件不会停留在我将它们放置在设计器中的位置。定期,控件将向左移动一个像素(在设计器中,而不是在运行时)。对于左右锚定的控件,控件将缩小,但对于仅右锚定的控件,整个控件向左移动,同时保持相同的大小。有谁知道为什么会发生这种情况或如何避免它?现在,我唯一能做的就是定期将它们移回去。
注意:我的 Windows 窗体设计器当前设置为 LayoutMode = SnapToGrid,对齐网格 = true,网格大小为 5 x 5。
编辑:我终于找到了在 Visual Studio 2012 中重现此问题的方法。使用我正在使用的相同设计器设置创建一个新的 Windows 窗体项目,并将 SplitContainer 添加到窗体。让它停靠以填充(或在所有侧面使用锚点)。现在,将SplitterDistance 设置为100,将SplitterWidth 设置为5。在右侧SplitPanel 添加一个按钮并将其锚点设置为Bottom 和Right。移动按钮,使其右边缘与 SplitPanel 的一侧齐平,然后关闭并打开窗体。神奇的是,按钮向左移动了一个像素。
这是关闭它之前的样子(在本例中,按钮的位置是 105、175):
这是关闭并重新打开后的样子(现在按钮的位置是 104、175):
我希望这个例子能帮助任何人重现这个问题。