这可能听起来像一个愚蠢的问题,但我需要知道当按钮旁边的其他按钮仍然不可见时,如何自动更改按钮的位置。我需要在Visual Studio 2005中实现这一点(我使用C#)。
为了进一步澄清这一点,让我们说我在我创建的表单的左上角有三个按钮。从右到左的按钮是: 1-回来 2-打印 3-下一步
最初,当表单首次启动时,只有Next按钮应该是可见的,它应该占据屏幕的右上角。稍后,当用户在屏幕上触发某些事件时,应该出现“打印”和“返回”按钮,但它们也应该出现在表单的右上角,这将实现与上面提到的相同的顺序。同样的按钮序列是我需要实现的要求。
提前感谢您的帮助。
答案 0 :(得分:5)
您正在寻找FlowLayoutPanel:
http://msdn.microsoft.com/en-us/library/system.windows.forms.flowlayoutpanel.aspx
将FlowDirection设置为RightToLeft,添加按钮,您应该开始营业。
答案 1 :(得分:2)
您可以使用:
Nextbutton.Visible = True; //initially
backbutton.Visible = False; //initially
printbutton.Visible = False; //initially
backbutton.Enabled = False; //initially to prevent tabbing to the control and clicking on it
printbutton.Enabled = False; //initially to prevent tabbing to the control and clicking on it
然后在事件处理程序集
中backbutton.Visible = True;
printbutton.Visible = True;
backbutton.Enabled = True;
printbutton.Enabled = True;
你甚至可以最初设置printButton和backButton的位置,它们只是在你希望它们所在的位置不可见。
此外,如果您需要设置位置使用:
someButton.Location = //some location on your form and move all three buttons as needed.
如果您希望它们相互抵消,您甚至可以这样做:
someButton.Location = (otherButton.Location +- /*Some offset*/) ;