在运行期间删除一个按钮时,自动调整面板内的按钮

时间:2016-11-14 14:06:12

标签: c# visual-studio

我在面板中有一些按钮。我希望按钮像Windows任务栏一样,当一个应用程序被取消固定时,空间会自动调整。

目前在我的面板中,当用户移除按钮(b2)时,b1和b3之间仍留有空白。我希望b3占用空白区域。

1 个答案:

答案 0 :(得分:0)

因为你在WinForms中:

FlowLayoutPanel属性设置为FlowDirection并设为LeftToRight,它将自动处理。如果你完全嫁给标准Panel(我不确定你为什么会这样),你必须重新发明一点:

public Form1()
{
    this.panel1.ControlRemoved += this.Panel1_ControlRemoved;
}

private void Panel1_ControlRemoved(object sender, ControlEventArgs e)
{
    int padding = 3;
    int lastRight = 0;

    foreach ( Control child in this.panel1.Controls ) 
    {
        child.Left = padding + lastRight;
        lastRight = child.Right + padding;
    }
}

添加控件等时无法处理...使用FlowLayoutPanel