2012-02-17 21 views
7

Tôi đã tạo biểu mẫu C# winforms,winforms điều chỉnh các điều khiển để đẩy lên theo chiều dọc khi những người khác vô hình

Nó có một vị trí nhãn và một flowlayoutpanel.

vào những dịp nhất định tôi đặt một trong các nhãn và flowlayoutpanel thành visible = false.

Kết quả là tôi muốn tất cả các nhãn bên dưới chúng được đẩy lên - tại thời điểm này có một khoảng trống ở đó.

Ngoài ra, tôi muốn flowlayoutpanel tăng và thu nhỏ tùy thuộc vào số lượng mục có. tại thời điểm nó chỉ là kích thước tôi đặt nó để được trong nhà thiết kế.

vui lòng giúp bạn với 2 vấn đề này.

Cảm ơn

+0

bạn có thể sử dụng một số bảng để chia biểu mẫu của mình, sau đó ẩn từng bảng sau đó cần thiết và sử dụng thuộc tính dock.fill. khi bạn sẽ ẩn một bảng điều khiển, hai cái còn lại sẽ lấp đầy khoảng trống bên trái. – vulkanino

Trả lời

8

Nếu tôi nhận được chính xác, tôi khuyên bạn nên sử dụng TableLayoutPane với hai hàng. Hàng trên cùng sẽ chứa một bảng điều khiển được gắn với tất cả các điều khiển có thể bị ẩn. Hàng dưới cùng sẽ chứa một bảng neo với tất cả các phần còn lại.

Đặt SizeType của hàng trên cùng thành Tự động kích thước và hàng dưới cùng là 100%.

Khi bạn muốn ẩn các điều khiển, hãy đặt thuộc tính Hiển thị của bảng điều khiển thành sai. Bây giờ, bởi vì hàng trên cùng được AutoSized nó sẽ thu nhỏ lại không có gì, khiến hàng dưới cùng "nhảy" lên.

+0

Tôi đã không nhận được nó: làm thế nào tôi có thể thiết lập một thuộc tính của một hàng? Dường như không có trong cửa sổ thuộc tính, cũng không phải trong cửa sổ bật lên của đối tượng «tableLayoutPanel». –

+0

Chỉ cần thêm một điều, vì tôi đã thử những gì bạn đề xuất nhưng nó không hoạt động cho đến khi tôi đặt 'AutoSizeMode = "GrowAndShrink" 'này cho TableLayoutPanel –

1

TableLayoutPanel thực hiện thao tác đẩy. Có lẽ bạn có thể sử dụng nếu không có câu trả lời tốt hơn trong thời gian tới.

0

Vấn đề đầu tiên: Bạn có thể sử dụng một số bảng đơn giản để chia biểu mẫu của bạn, cung cấp cho họ thuộc tính dock.fill. khi bạn sẽ ẩn một bảng lập trình, các bảng khác sẽ lấp đầy khoảng trống bên trái.

Vấn đề thứ hai: Bạn phải đặt thuộc tính Autosize thành true.

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