web-dev-qa-db-ja.com

テーブルレイアウトで2つのセルを結合する方法

2行2列です。両方のセルの最後の列を1つにマージする必要があります。要件により、他のデザインオプションを使用しないということは、最初のテーブルレイアウトに2つの行がある2つのテーブルレイアウトを意味します。私はC#でWinformsを使用しています。

|                       |                    |
|                       |                    |
|                       |                    |
|_______________________|                    |
|                       |                    |
|                       |                    |
|                       |                    |
24
Abhijit Shelar

http://msdn.Microsoft.com/en-us/library/system.windows.forms.tablelayoutpanel.aspx

たとえば、TableLayoutPanelコントロールでRowSpan popertyを設定できます。

5
Kamilos
  1. フォームデザイナーでセルにコントロールを配置する
  2. コントロールを選択し、そのプロパティを表示します
  3. 「レイアウト」セクションで「ColumnSpan」プロパティを検索します
  4. この値に必要な列スパンを入力します

イラストの画像を参照してください。

enter image description here

30
Boris Zinchenko

コードでそれを行う方法は次のとおりです

//create a label control, add it to the tableLayoutPanel, and merge it into 3 cells.
Label lbl = new Label();
lbl.Location = new Point(0, 0);
lbl.Text = "This is a test label";
MyTableLayoutPanel.Controls.Add(lbl, 0,0);  //start it in cell 0,0
MyTableLayoutPanel.SetColumnSpan(lbl, 3);  //merge 3 columns
7
NL3294

ここでセルの結合のタイトルを見ることができます。

http://en.csharp-online.net/TableLayoutPanel

2
sinanakyazici

ColumnSpan / RowSpan プロパティを設定する代わりに、別の TableLayoutPanel のセル内に TableLayoutPanel を追加できます。 2つのセルをマージする代わりに、2つのセルを分割します。質問で提供する例では、右の列を1行にマージする代わりに、左の列を2行に分割します。

このメソッドは、 CellBorderStyle プロパティを " None "以外に設定する場合にのみ有効です。私はこの答えを見つけました here 、ここで CSharpFreak はまた別の方法を示唆していますが、私は試しませんでした。

1
GregNash

次のコードを使用すると、目的の数の行/列にコントロールを広げることができます

TableLayoutPanel tableLayoutPanel1 = new TableLayoutPanel(); // not required if you already have the control added else where or in designer. 
TextBox textBox1 = new TextBox(); // not required if you already have the control added else where or in designer. 
tableLayoutPanel1.Controls.Add(textBox1);// not required if you already have the control added else where or in designer. 
tableLayoutPanel1.SetColumnSpan(textBox1, 2);
tableLayoutPanel1.SetRowSpan(textBox1, 2);
0
Shekhar

テーブルでマージを開始するセルのコントロールのRowSpanプロパティを設定します。つまり、RowSpanが3の場合、コントロールはそのセルとその下の2つのセルを塗りつぶします。

ColumnSpanを右にマージします。

コードで、SetRowSpanメソッドまたはSetColumnSpanメソッドを呼び出します。

0
mackjazzy

このような「マージ」プロパティをコントロールに設定できます。

コントロールがLabelであり、行をマージする場合、次のように実行できます。

TableLayoutPanel table = new TableLayoutPanel();

Label lbl = new Label();
lbl.Text = "test";
lbl.Dock = DockStyle.Fill;

table.Controls.Add(lbl, 0, 0); //initial position
table.SetRowSpan(lbl,2);
0
zurfyx