C#使用Dockstyle并设置边距

 小Reve_942 发布于 2023-01-01 18:08

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

现在,我试图在元素之间插入一个间距,因此我在表单中添加了填充,并在按钮中添加了边距。第一个可以正常运行,但是margin不能正常运行,因此RichTextBoxand 之间没有空格Button

这是代码和输出。我想念什么吗?

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

1 个回答
  • Margin在停靠控件上设置属性不会影响控件与其容器边缘之间的距离。

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

    2023-01-01 18:09 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有