2012-02-22 54 views
16

Tôi có hai hàng và hai cột. Tôi muốn cột cuối cùng của cả hai ô hợp nhất thành một. Do yêu cầu tôi không sử dụng các tùy chọn thiết kế khác có nghĩa là hai tablelayouts trong đó bố trí bảng đầu tiên có hai hàng.Tôi đang sử dụng Winforms trong C#.Cách hợp nhất hai ô trong Bố cục Bảng

|      |     | 
|      |     | 
|      |     | 
|_______________________|     | 
|      |     | 
|      |     | 
|      |     | 
+0

Bạn đang sử dụng bảng nào? –

+0

Bạn đã sử dụng thẻ C#. Phải làm gì với C#? Tôi không thể hiểu được. Bạn muốn làm điều này ở đâu? – sinanakyazici

+1

Tôi muốn thiết kế giao diện người dùng, trong đó tôi sử dụng TableLayout trong Winforms –

Trả lời

0

Đặt thuộc tính RowSpan của điều khiển trong ô sẽ bắt đầu hợp nhất trong bảng. tức là RowSpan of 3 sẽ có kiểm soát điền vào ô của nó và 2 ô bên dưới.

CộtĐể hợp nhất sang phải.

Trong mã, hãy gọi phương thức SetRowSpan và/hoặc SetColumnSpan.

6

Dưới đây là làm thế nào để làm điều đó trong mã

//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 
1

Thay vì thiết lập thuộc tính ColumnSpan/RowSpan, bạn có thể thêm một TableLayoutPanel trong tế bào của TableLayoutPanel khác. Thay vì hợp nhất hai ô, bạn sẽ tách hai ô. Trong ví dụ bạn cung cấp trong câu hỏi của mình, bạn sẽ tách cột bên trái thành hai hàng, thay vì hợp nhất cột bên phải thành một hàng.

Phương pháp này chỉ thuận lợi nếu bạn định đặt thuộc tính CellBorderStyle thành một thứ khác ngoài "None". Tôi đã tìm thấy câu trả lời này here, trong đó CSharpFreak cũng đề xuất một phương pháp khác mà tôi không thử.

0

Bạn có thể thiết lập như "sáp nhập" tài sản cho điều khiển:

Hãy nói rằng Control là một Label và bạn muốn kết hợp hàng, sau đó bạn có thể làm điều đó như sau:

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

Các sau mã nên cho phép bạn để span một điều khiển trên số mong muốn của hàng/cột

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); 
13
  1. Đặt bất kỳ kiểm soát vào một ô trong thiết kế mẫu
  2. Chọn sự kiểm soát và xem thuộc tính của nó
  3. Tìm "ColumnSpan" bất động sản trong "Giao diện" phần
  4. Input mong muốn khoảng cột cho giá trị này

Xem hình ảnh minh họa:

enter image description here

Các vấn đề liên quan