C#使用dockstyle和设置边距
我试图以编程方式创建的新形式插入两个对象;基本上,我希望底部有一个C#使用dockstyle和设置边距,c#,winforms,margin,padding,spacing,C#,Winforms,Margin,Padding,Spacing,我试图以编程方式创建的新形式插入两个对象;基本上,我希望底部有一个按钮,剩余的空间都有一个RichTextBox填充。我将第一个设置为Dock=DockStyle.Bottom,将后一个设置为Dock=DockStyle.Fill,它就工作了 现在我尝试在元素之间插入一个空格,所以我在表单中添加了一个填充,在按钮中添加了一个边距。第一个选项正确,但边距不正确,因此RichTextBox和按钮之间没有空格 下面是代码和输出。我错过什么了吗 // Parent Form SMSForm.Paddin
按钮
,剩余的空间都有一个RichTextBox
填充。我将第一个设置为Dock=DockStyle.Bottom
,将后一个设置为Dock=DockStyle.Fill
,它就工作了
现在我尝试在元素之间插入一个空格,所以我在表单中添加了一个填充,在按钮中添加了一个边距。第一个选项正确,但边距不正确,因此RichTextBox
和按钮之间没有空格
下面是代码和输出。我错过什么了吗
// Parent Form
SMSForm.Padding = new Padding(5);
// TextBox
RichTextBox SMStext = new RichTextBox();
SMSForm.Controls.Add(SMStext);
SMStext.Dock = DockStyle.Fill;
// Button
Button SMSsend = new Button();
SMSsend.Text = "Send SMS to ";
SMSForm.Controls.Add(SMSsend);
SMSsend.Margin = new Padding(10);
SMSsend.Dock = DockStyle.Bottom;
首先松开RTB。然后根据需要设置RTB和按钮的位置(通过编程指定边界)
然后将RTB的锚属性设置为“所有边”。i、 e.左上右下
然后将按钮锚定设置到左右底部
此外,如果您希望更多地控制布局,可以使用“流程布局”面板或“表格布局”面板控件。在停靠控件上设置Margin
属性不会影响控件与其容器边缘之间的距离
。使用表格布局面板
像这样
RichTextBox SMStext = new RichTextBox();
TableLayoutPanel pnl1 = new TableLayoutPanel();
pnl1.RowStyles.Clear();
pnl1.ColumnStyles.Clear();
pnl1.RowCount += 2;
pnl1.ColumnCount += 1;
pnl1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100.0F));
pnl1.RowStyles.Add(new RowStyle(SizeType.Percent,80.0F));
pnl1.RowStyles.Add(new RowStyle(SizeType.Percent,20.0F));
pnl1.Controls.Add(SMStext,0,0);
SMStext.Dock = DockStyle.Fill;
Button SMSsend = new Button();
SMSsend.Text = "Send SMS to ";
this.Controls.Add(pnl1);
pnl1.Dock = DockStyle.Fill;
pnl1.Controls.Add(SMSsend,0,1);
SMSsend.Dock = DockStyle.Fill;
SMSsend.Margin = new Padding(10);
你在没有设计师的情况下这么做?如果是,请考虑使用和<代码> RealelayOuts<代码> >这是WiFrm?如果您在问题上使用WinForms标记来指定这一点,这将非常有用。