【问题标题】:C# using dockstyle and set marginC#使用dockstyle并设置边距
【发布时间】:2014-09-13 01:49:57
【问题描述】:

我正在尝试以我以编程方式创建的新形式插入几个对象;基本上我想要一个Button 在底部和一个RichTextBox 填充所有剩余空间。我将第一个设置为Dock = DockStyle.Bottom,将后者设置为Dock = DockStyle.Fill,它可以工作。

现在我正在尝试在元素之间插入间距,因此我在表单中添加了填充,在按钮中添加了边距。第一个可以正常工作,但边距不能,所以RichTextBoxButton 之间没有空格。

这是代码和输出。我错过了什么吗?

// 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;

【问题讨论】:

  • 你在没有设计师的情况下做这个?如果是,请考虑在之后使用SuspendLayoutResumeLayout
  • 这是 WinForms 吗?如果您通过在问题上使用 WinForms 标记来指定这一点,将会很有帮助。

标签: c# winforms margin padding spacing


【解决方案1】:

在停靠控件上设置Margin 属性不会影响控件与其容器边缘的距离。

Read MSDN。使用Table layout panel

像这样

           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);

【讨论】:

    【解决方案2】:

    首先取消对接 RTB。然后根据需要设置 RTB 和按钮的位置(通过以编程方式指定边界)。

    然后将 RTB 的 anchor 属性设置为 all side。即左上右下

    然后将按钮锚点设置为左右底部。

    另外,如果想要更多的布局控制,可以使用流式布局面板或者表格布局面板控件。

    【讨论】:

      猜你喜欢
      • 2012-02-24
      • 2012-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-10
      • 1970-01-01
      • 1970-01-01
      • 2017-01-12
      相关资源
      最近更新 更多