我的面板中已有一个按钮,在滚动之前不可见(因为面板的视图尺寸小于buttonA的x坐标)。我想在按钮A之外放置一个按钮。怎么做 ?我正在使用它,但它只将按钮放在控制视图的左侧而不是内部最大宽度。
我希望它是通用的,如果任何按钮超出最大内部宽度,下一个按钮应该转到该按钮。不能使用底座,因为我也希望顶部放置相同的功能。
"对问题的新编辑"
每次点击后都会生成按钮,它们具有随机宽度。可以删除该按钮但是新按钮应该添加到目前为止所占用的最大宽度,如果删除了最近的按钮,则应该在第二个最左按钮之后发生下一个按钮
button1.Left = buttonA.Parent.Size.Width+button1.Width;
答案 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
时,这会在上一个按钮旁边创建一个新按钮。