如何在面板c中将按钮设置为最大左侧#

时间:2015-11-11 14:14:55

标签: c# winforms panel

我的面板中已有一个按钮,在滚动之前不可见(因为面板的视图尺寸小于buttonA的x坐标)。我想在按钮A之外放置一个按钮。怎么做 ?我正在使用它,但它只将按钮放在控制视图的左侧而不是内部最大宽度。

我希望它是通用的,如果任何按钮超出最大内部宽度,下一个按钮应该转到该按钮。不能使用底座,因为我也希望顶部放置相同的功能。

"对问题的新编辑"

每次点击后都会生成按钮,它们具有随机宽度。可以删除该按钮但是新按钮应该添加到目前为止所占用的最大宽度,如果删除了最近的按钮,则应该在第二个最左按钮之后发生下一个按钮

button1.Left = buttonA.Parent.Size.Width+button1.Width;

enter image description here

2 个答案:

答案 0 :(得分:3)

如果您想将button1放在buttonA的右侧,则可以使用Left的{​​{1}}和Width属性来解决此问题:

buttonA

修改:

为了确保我总是添加到最后一个按钮的右侧,我可以保留对最后使用位置的引用:

// Places button1 to the right of buttonA by 10 pixels
button1.Left = buttonA.Left + buttonA.Width + 10;

你可以通过将一些方法包装在一个方法中来使它更清洁,但为了清晰起见,我已经离开了详细版本。

答案 1 :(得分:2)

您可以将整个按钮Width保存为整数,并使用它来设置Left属性:

private void button1_Click(object sender, EventArgs e)
{
    Button btn = new Button();
    btn.Left = nTotalWidth;

    panel1.Controls.Add(btn);
    nTotalWidth += btn.Width;
}

每次点击button1时,这会在上一个按钮旁边创建一个新按钮。