2016-05-12 17 views
0

私はDataGridViewを表示するシンプルなフォームを持っています。同じフォーム上の最初のDataGridViewオブジェクトの下に2番目のDataGridViewオブジェクトを表示するとします。1つのフォーム上の複数のDataGridViews

しかし、私は、コードを実行すると、それだけで最初に表示されます。デバッガを実行すると、フォームには、両方のデータグリッドビューがリンクされていることが一覧表示されます。

System.Windows.Forms.Form form 
      = new System.Windows.Forms.Form(); 
     form.Size = new System.Drawing.Size(450, 400); 
     form.Text = "Form"; 

     DataGridView dg = new DataGridView(); 
     dg.AllowUserToAddRows = false; 
     dg.AllowUserToDeleteRows = false; 
     dg.AllowUserToOrderColumns = true; 
     dg.Dock = System.Windows.Forms.DockStyle.Fill; 
     dg.Location = new System.Drawing.Point(0, 0); 
     dg.ReadOnly = true; 
     dg.TabIndex = 0; 
     dg.DataSource = dt; 
     dg.Parent = form; 



     DataGridView dgHangers = new DataGridView(); 
     dgHangers.AllowUserToAddRows = false; 
     dgHangers.AllowUserToDeleteRows = false; 
     dgHangers.AllowUserToOrderColumns = true; 
     dgHangers.Dock = System.Windows.Forms.DockStyle.Fill; 
// attempting get the bottom of the first DataGridView() so the second will display below. 
     dgHangers.Location = new System.Drawing.Point(0, dg.DisplayRectangle.Bottom); 
     dgHangers.ReadOnly = true; 
     dgHangers.TabIndex = 1; 
     dgHangers.DataSource = hangerTable; 
     dgHangers.Parent = form; 



     form.ShowDialog(); 

フォーム:

答えて

1

まず:あなたは2つのDataGridViewのため、この行せずに、両方の作成、データグリッド、 ので、テストを見ることができないSystem.Windows.Forms.DockStyle.Fill;と。

それとも、最初に使用することができます。dg.Dock = System.Windows.Forms.DockStyle.Top;

と第二のために:dg.Dock = System.Windows.Forms.DockStyle.Bottom;

あなたはform.Controls.Add(dg);代わり

+0

dg.Parent = form;のおかげを使用することができますalsoo! 私はそれが何か単純でなければならないことを知っていました。 – Ryan

+0

喜んで。 –

関連する問題