如何在C#中动态调整文本框的大小

我是C#用户界面的新手。 我创建了一个窗口,如第一张图片所示。 但是如果用户拖动窗口并使其变大,我希望它使每个richTextBox展开,如第二张图片所示。 例如,使richTextBox4与窗口大小成比例。 任何想法将不胜感激

此搜索:

图1

图2: 在此处输入图像描述

您可以将TableLayoutPanel添加到表单。 默认情况下,此面板有两列和两行。

然后,为每个单元格添加一个TextBox ,并将每个TextBoxDock -Property设置为Fill

最后一步要做的是将TableLayoutPanelDock -Property设置为Fill或者将TableLayoutPanelAnchor -Property设置为Left | Right | Bottom | Top Left | Right | Bottom | Top Left | Right | Bottom | Top 。 然后,您的面板将与表格一起resize。

所有这些步骤都可以由设计师完成。

使用TableLayoutControl 。 您可以在该表的每个单元格中拥有一个控件。 现在,在该表上,您设置:

 Dock: Fill Column Width: Percentage or absolute value as per needs Row Height: Percentage or absolute value as per needs 

在控件上,如您的案例中的文本框,将Dock设置为Fill

阅读并尝试。 如果你遇到困难,请回答问题。

通过使用TableLayoutControl在每个单元格中使用一个文本框,然后将每个控件的锚属性(文本框和TableLayout)设置为Left,Top,Right和bottom,可以实现相同的结果。

你可以在设计师那里做到。

使用TableLayoutPanel ,并将其Anchor属性设置为TopBottomLeftRight ,并将单元格设置为Dock to Fill每个RichtTextBox。

 this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); this.button1 = new System.Windows.Forms.Button(); this.richTextBox1 = new System.Windows.Forms.RichTextBox(); this.richTextBox2 = new System.Windows.Forms.RichTextBox(); this.richTextBox3 = new System.Windows.Forms.RichTextBox(); this.richTextBox4 = new System.Windows.Forms.RichTextBox(); this.tableLayoutPanel1.SuspendLayout(); this.SuspendLayout(); // // tableLayoutPanel1 // this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.tableLayoutPanel1.ColumnCount = 2; this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); //this line sets the Column percentage this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel1.Controls.Add(this.richTextBox4, 1, 1); this.tableLayoutPanel1.Controls.Add(this.richTextBox3, 0, 1); this.tableLayoutPanel1.Controls.Add(this.richTextBox2, 1, 0); this.tableLayoutPanel1.Controls.Add(this.richTextBox1, 0, 0); this.tableLayoutPanel1.Location = new System.Drawing.Point(24, 80); this.tableLayoutPanel1.Name = "tableLayoutPanel1"; this.tableLayoutPanel1.RowCount = 2; this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); this.tableLayoutPanel1.Size = new System.Drawing.Size(861, 567); this.tableLayoutPanel1.TabIndex = 0; // // button1 // this.button1.Location = new System.Drawing.Point(24, 27); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(137, 47); this.button1.TabIndex = 0; this.button1.Text = "button1"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click); // // richTextBox1 // this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Fill; this.richTextBox1.Location = new System.Drawing.Point(3, 3); this.richTextBox1.Name = "richTextBox1"; this.richTextBox1.Size = new System.Drawing.Size(424, 277); this.richTextBox1.TabIndex = 0; this.richTextBox1.Text = ""; // // richTextBox2 // this.richTextBox2.Dock = System.Windows.Forms.DockStyle.Fill; this.richTextBox2.Location = new System.Drawing.Point(433, 3); this.richTextBox2.Name = "richTextBox2"; this.richTextBox2.Size = new System.Drawing.Size(425, 277); this.richTextBox2.TabIndex = 1; this.richTextBox2.Text = ""; // // richTextBox3 // this.richTextBox3.Dock = System.Windows.Forms.DockStyle.Fill; this.richTextBox3.Location = new System.Drawing.Point(3, 286); this.richTextBox3.Name = "richTextBox3"; this.richTextBox3.Size = new System.Drawing.Size(424, 278); this.richTextBox3.TabIndex = 2; this.richTextBox3.Text = ""; // // richTextBox4 // this.richTextBox4.Dock = System.Windows.Forms.DockStyle.Fill; this.richTextBox4.Location = new System.Drawing.Point(433, 286); this.richTextBox4.Name = "richTextBox4"; this.richTextBox4.Size = new System.Drawing.Size(425, 278); this.richTextBox4.TabIndex = 3; this.richTextBox4.Text = ""; // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 25F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(922, 659); this.Controls.Add(this.button1); this.Controls.Add(this.tableLayoutPanel1); this.Name = "Form1"; this.Text = "Form1"; this.tableLayoutPanel1.ResumeLayout(false); this.ResumeLayout(false);