当我在VS 2012中的编辑器中关闭我的表单时,我遇到了按钮控件移动的问题。我在C#中专门工作。这让我疯狂,因为每次打开设计师时我都必须重新定位控件。
Form Size 995, 625
Button Location
------ --------
Save button 617, 575
Delete button 701, 575
Clear button 785, 575
Cancel button 869, 575
按钮固定在底部,右边
表单最大大小为0,0
这些按钮上方有一个TabControl。我以前遇到过这个问题,我很确定它也包含一个带TabControl的表单。
此表单下面有几层继承,但两者都定义得更小。这里的按钮继承自这一个下面的表格。在那个表格上,他们被锚定在Top,Left所以我认为如果他们受到那些形式定位的影响,我的控件将向上移动并向左移动。他们一直向下和向右移动。
重现的步骤。
Button Location
Save button 852, 664 (off visible form)
Delete button 936, 631 (off visible form)
Clear button 1020, 630 (off visible form)
Cancel button 1104, 664 (off visible form)
这些地点各不相同。有时它们仍处于形状上,或部分位于较低位置并且不再对齐的形状上。它们总是较低和向右,好像它们在关闭过程中受到不断变化的形状大小的影响。
如果我在设计师中制作更大的表格,他们就会继续向下移动并保持正确的状态。
我现在已经采用编程方式定位它们,但我们宁愿了解正在发生的事情,以便将来阻止它。
答案 0 :(得分:3)
如果您有一个基本表单(或用户控件),您可以为控件设置一些锚点,而在派生设计器中,您的表单具有不同的大小。
一种可能的解决方案是忘记锚定并使用对接。您可以使用Dock
,Margin
和Padding
属性来实现所有目标;但是,第一次可能需要使用许多不可见的面板(例如,当您想要使用彼此之下的两行控件时)可能会很奇怪。这与在WPF中使用Stack / Dock面板类似。
http://jsfiddle.net/bocanegra_carlos/8ej4r02f/
此外,您也可以使用TableLayoutPanel
。