Tôi đã chiến đấu với điều này một thời gian, và đã tìm thấy rằng một số người khác đấu tranh với TableLayoutPanel (net 2.0 Winforms).Winforms TableLayoutPanel thêm hàng lập trình
Vấn đề
Tôi đang cố gắng để có một TableLayoutPanel 'trống', trong đó có 10 cột được xác định, sau đó khi chạy theo chương trình thêm hàng của các điều khiển (ví dụ: một điều khiển mỗi tế bào).
Người ta có thể có thể nghĩ rằng nó nên càng đơn giản càng
myTableLayoutPanel.Controls.Add(myControl, 0 /* Column Index */, 0 /* Row index */);
Nhưng đó (cho tôi) không thêm các hàng. Vì vậy, có thể thêm vào một phong cách hàng
myTableLayoutPanel.RowStyles.Clear();
myTableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
Nhưng điều đó cũng không có tác dụng. Tôi đã đào xung quanh và phát hiện ra rằng những thay đổi sử dụng myTableLayoutPanel.RowCount
từ thời gian thiết kế để chạy thời gian, do đó làm myTableLayoutPanel.RowCount++;
không thực sự thêm một hàng khác, thậm chí không trước/sau khi thêm một mục 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ỉ được hiển thị tại điểm 0,0 của TableLayoutPanel, ngoài ra chúng còn không bị ràng buộc trong phạm vi ô mà chúng được cho là sẽ được hiển thị bên trong (nghĩa là với Dock = DockStyle.Fill chúng vẫn xuất hiện quá lớn/nhỏ).
Có ai đó có ví dụ hoạt động về việc thêm hàng & kiểm soát vào thời gian chạy không?
Thêm một RowStyle sẽ thực sự tăng RowStyles.Count() –