【发布时间】:2014-04-17 16:18:41
【问题描述】:
我在面板内有一些按钮,例如图片(1) 它是一个用户控件。
我希望当有人使用我的用户控件时,当调整面板大小时,按钮大小和它们之间的空间会改变。
其实我想要图(3)但是图(2)会发生...
我将面板的锚点设置为右、左、上、下。如何修复图 3 中的按钮?!
【问题讨论】:
我在面板内有一些按钮,例如图片(1) 它是一个用户控件。
我希望当有人使用我的用户控件时,当调整面板大小时,按钮大小和它们之间的空间会改变。
其实我想要图(3)但是图(2)会发生...
我将面板的锚点设置为右、左、上、下。如何修复图 3 中的按钮?!
【问题讨论】:
1 - 为用户控件中的所有按钮设置“MaximumSize”和“MinimumSize”。类似这样:
btnSave.MaximumSize = new Size(80, 30);
btnSave.MinimumSize = new Size(60, 30);
btnEdit.MaximumSize = new Size(80, 30);
btnEdit.MinimumSize = new Size(60, 30);
.
.
.
或从属性窗口设置。
2 - 将所有按钮的“Anchor”属性设置为左、右
3 - 在您的用户控件中为“调整大小”事件编写以下代码
private void UserControl1_Resize(object sender, EventArgs e)
{
int lastLeft = 0 , lastWidth = 0 ;
foreach (Control ctrl in this.Controls)
{
ctrl.Left = lastLeft + lastWidth + 3;
lastLeft = ctrl.Left;
lastWidth = ctrl.Width;
}
}
注意:不要忘记你必须从面板中剪切按钮并将它们粘贴到用户控件中。你不需要面板,你可以删除它。
希望这有用。
【讨论】: