【发布时间】:2014-03-10 02:05:08
【问题描述】:
我是 C# 用户界面的新手。我创建了一个窗口,如第一张图片所示。但是,如果用户拖动窗口并使其变大,我希望它使每个 richTextBox 都随之展开,如第二张图所示。例如,使richTextBox4 与窗口大小成正比。任何想法将不胜感激
图片1:
图 2:
【问题讨论】:
我是 C# 用户界面的新手。我创建了一个窗口,如第一张图片所示。但是,如果用户拖动窗口并使其变大,我希望它使每个 richTextBox 都随之展开,如第二张图所示。例如,使richTextBox4 与窗口大小成正比。任何想法将不胜感激
图片1:
图 2:
【问题讨论】:
您可以在表单中添加TableLayoutPanel。默认情况下,此面板有两列和两行。
然后你为每个单元格添加一个TextBox,并将每个TextBox 的Dock-Property 设置为Fill。
要做的最后一步是将TableLayoutPanel 的Dock-Property 设置为Fill,或者将TableLayoutPanel 的Anchor-Property 设置为Left | Right | Bottom | Top。然后您的面板将与表单一起调整大小。
所有这些步骤都可以由设计师完成。
【讨论】:
使用TableLayoutControl。您可以对该表格的每个单元格进行一个控件。现在,在那张桌子上,你设置:
Dock: Fill
Column Width: Percentage or absolute value as per needs
Row Height: Percentage or absolute value as per needs
在控件上,例如您的文本框,将Dock 设置为Fill。
阅读并尝试。如果您遇到困难,请回来提出问题。
【讨论】:
在每个单元格中使用一个文本框的 TableLayoutControl 可以实现相同的结果 然后将每个控件(文本框和表格布局)的锚属性设置为左、上、右和下。
【讨论】:
您可以在设计器中完成。
使用TableLayoutPanel,并将其Anchor 属性设置为Top,Bottom,Left,Right,并将单元格内的每个 RichtTextBox 设置为Dock 为Fill。
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);
【讨论】: