怎么把添加控件顺序排列而不是倒序。

本文探讨了在C#中使用Panel或TabControl添加控件时遇到的顺序问题,由于设置Dock.Top属性导致控件显示顺序相反。提出了三种解决方案:1)反向添加控件;2)移除Dock属性;3)通过设置控件Width跟随主控件变化。重点介绍了第三种方法,通过设置richtextbox的Width等于tabControl1.Width,实现了控件位置的正确排列,并保持了缩放时的美观性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们在用C#给Panel或者tabcontrol中添加多个控件实例时,发现最新添加的控件排在最前面,而不是最后面,顺序完全颠倒了过来。因为我们设置的属性是Dock.Top,这样虽然可以随着窗体的变化而变化,但是形成了倒序。

1.可以把需要的控件反向添加来解决这个问题,但是不是最好的解决方案。

2.可以把Dock.Top属性去掉,顺序排列添加是没问题了,但是放大窗体时会发现总会不产生变化而不美观

3.我们可以把控件的Width属性设置成随主控件的width变化而变化(比如:tabtrol控件里添加文本框,不随着窗体的变化而变化,而我们的文本框是子控件,声明且设置跟随父控件宽度变化而变化,问题解决。

代码如下:

   private RichTextBox GetRichTextBox(string text)
        {
            RichTextBox richText = new RichTextBox();
            richText.Font = new System.Drawing.Font("楷体", 12F, FontStyle.Bold, 
             GraphicsUnit.Point, ((byte)(134)));
            richText.Location = new System.Drawing.Point(3, 3);
            richText.Name = "richTextBox1";
            richText.Size = new Size(719, 91);
            richText.Width = tabControl1.Width;
            richText.TabIndex = 45;
            richText.Text = text;
            richText.Location = new System.Drawing.Point(0, ControlsHeight());
            return richText;
        }

主要是 richText.Width = tabControl1.Width;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值