答案 0 :(得分:1)
答案 1 :(得分:1)
您可以使用面板的Anchor
属性,将其设置为“全部”或“底部,顶部,左侧,右侧”。它将与容器边界保持相同的间距,即,如果将容器缩小,它将变得更小,反之亦然。
答案 2 :(得分:1)
在停靠用户控件之前,需要确保调整大小时用户控件的控件不会混乱。为此,您需要为用户控件锚点属性的控件设置正确的值。之后,您可以在下面的代码中将其停靠。
userControlName ctrl = new userControlName();
panel1.Controls.Add(ctrl);
ctrl.Dock = DockStyle.Fill;
或者您可以在面板的controlAdded事件中做类似的事情
foreach (Control ctrl in panel1.Controls)
{
ctrl.Dock = DockStyle.Fill;
}
编辑:现在,我可以看到图片了。您需要设置
文本框以向左停靠并调整其大小
button2 定位到顶部,右侧
button1 锚定到底部,右侧
答案 3 :(得分:0)
TableLayoutPanel
可以解决问题。
在您的UserControl
上放置一个TableLayoutPanel
作为第一个控件,并将其Dock
属性设置为Fill
。
在TableLayoutPanel
上增加一行,这样您就有2列和3行。将Textbox
放在左上角,将Multiline
设置为true,然后将Dock
设置为Fill
。找到RowSpan
属性并将其设置为3。
将按钮添加到右列,第一行一个按钮,第二行一个按钮。不要在这些属性上设置Dock
属性。只需设置您所需的任何额外利润。
最后打开TableLayoutPanel
的“列/行”编辑窗口,并按如下所示设置“列”:
然后像这样设置行:
按“确定”退出“列/行样式”窗口,您的UserControl
现在应如下所示:
是否要在Buttons
之间留出更多间距或在TextBox
周围留出空隙,请确保在每个控件上设置Margin
属性,直到获得所需的布局
现在,将新的UserControl
放在设计图面上并调整其大小时,您会发现按钮不再被文本框遮盖。
当然,您可以按照自己喜欢的方式处理列数/行数,直到获得所需的布局为止。
我建议不要将行/列设置为AutoSize
,直到它们包含控件,否则行/列将从设计视图中消失,而您必须从{{1}中设置行/列},Cell
,Row
附加了您要放置的控件的属性。