Tôi đã đấu tranh với điều này trong một thời gian và nhận thấy rằng một số người khác cũng đấu tranh với TableLayoutPanel (.net 2.0 Winforms).
Vấn đề
Tôi đang cố gắng lấy một bảng điều khiển tablelayout 'trống', có 10 cột được xác định, sau đó trong thời gian chạy thêm các hàng điều khiển theo cách lập trình (tức là một điều khiển cho mỗi ô).
Người ta có thể nghĩ rằng nó phải đơn giản như
myTableLayoutPanel.Controls.Add(myControl, 0 /* Column Index */, 0 /* Row index */);
Nhưng điều đó (đối với tôi) không thêm các hàng. Vì vậy, có thể thêm theo kiểu hàng
myTableLayoutPanel.RowStyles.Clear();
myTableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
Nhưng điều đó cũng không hiệu quả. Tôi đã tìm hiểu kỹ và phát hiện ra rằng việc myTableLayoutPanel.RowCount
sử dụng thay đổi từ thời gian thiết kế sang thời gian chạy, do đó việc làm myTableLayoutPanel.RowCount++;
này không thực sự thêm một hàng khác, thậm chí không phải trước / sau khi thêm mục nhập RowStyle cho nó!
Một vấn đề liên quan khác mà tôi đang gặp phải là các điều khiển sẽ được thêm vào màn hình, nhưng tất cả chúng chỉ đơn giản được hiển thị tại điểm 0,0 của TableLayoutPanel, ngoài ra chúng thậm chí không bị ràng buộc trong giới hạn Ô mà chúng được cho là hiển thị bên trong (tức là với Dock = DockStyle.Fill, chúng vẫn xuất hiện quá lớn / quá nhỏ).
Ai đó có ví dụ làm việc về việc thêm hàng & điều khiển trong thời gian chạy không?