Vous aurez besoin de vos contrôles pour redimensionner légèrement pour s'adapter à la largeur de la barre de défilement verticale. Un moyen d'y parvenir grâce à l'amarrage. Plutôt que de simplement laisser tomber les contrôles sur le formulaire, vous devrez jouer un peu avec les panneaux, le rembourrage, le dimensionnement min/max et l'ancrage.
Voici un exemple de code que vous pouvez placer derrière un nouveau Form1 vide. Redimensionnez le formulaire, dans le concepteur ou l'exécution et vous verrez que la barre de défilement horizontale n'est pas affichée et les champs ne se chevauchent pas. J'ai également donné aux champs une largeur maximum pour la bonne mesure:
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent() {
this.textBox1 = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.panel1 = new System.Windows.Forms.Panel();
this.panel2 = new System.Windows.Forms.Panel();
this.textBox2 = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.panel1.SuspendLayout();
this.panel2.SuspendLayout();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Dock = System.Windows.Forms.DockStyle.Top;
this.textBox1.Location = new System.Drawing.Point(32, 0);
this.textBox1.MaximumSize = new System.Drawing.Size(250, 0);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(250, 20);
this.textBox1.TabIndex = 0;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Dock = System.Windows.Forms.DockStyle.Left;
this.label1.Location = new System.Drawing.Point(0, 0);
this.label1.Name = "label1";
this.label1.Padding = new System.Windows.Forms.Padding(0, 3, 0, 0);
this.label1.Size = new System.Drawing.Size(32, 16);
this.label1.TabIndex = 0;
this.label1.Text = "Field:";
//
// panel1
//
this.panel1.Controls.Add(this.textBox1);
this.panel1.Controls.Add(this.label1);
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(392, 37);
this.panel1.TabIndex = 2;
//
// panel2
//
this.panel2.Controls.Add(this.textBox2);
this.panel2.Controls.Add(this.label2);
this.panel2.Dock = System.Windows.Forms.DockStyle.Top;
this.panel2.Location = new System.Drawing.Point(0, 37);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(392, 37);
this.panel2.TabIndex = 3;
//
// textBox2
//
this.textBox2.Dock = System.Windows.Forms.DockStyle.Top;
this.textBox2.Location = new System.Drawing.Point(32, 0);
this.textBox2.MaximumSize = new System.Drawing.Size(250, 0);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(250, 20);
this.textBox2.TabIndex = 0;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Dock = System.Windows.Forms.DockStyle.Left;
this.label2.Location = new System.Drawing.Point(0, 0);
this.label2.Name = "label2";
this.label2.Padding = new System.Windows.Forms.Padding(0, 3, 0, 0);
this.label2.Size = new System.Drawing.Size(32, 16);
this.label2.TabIndex = 0;
this.label2.Text = "Field:";
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.AutoScroll = true;
this.ClientSize = new System.Drawing.Size(392, 116);
this.Controls.Add(this.panel2);
this.Controls.Add(this.panel1);
this.Name = "Form1";
this.Text = "Form1";
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.panel2.ResumeLayout(false);
this.panel2.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.Label label2;