2011-08-14 36 views
28

Tôi có một WinForms Form với một vài điều khiển trên đó. Tất cả chúng đều là các điều khiển GrouBox và tôi muốn chúng được xếp chồng lên nhau, với một đường viền dọc được đặt giữa chúng. Tôi đã đặt thuộc tính Dock thành Hàng đầu và ngăn xếp chúng không sao, nhưng bỏ qua lề (các điều khiển gần nhau nhất có thể).Lệnh Margin có thể được thực thi ngay cả khi thiết lập thuộc tính Dock không?

Các lề này vẫn có thể được thực thi không? Về cơ bản, nó sẽ tính toán vị trí được cập nhật thường xuyên (như thể lề là 0) rồi áp dụng lề. Có phải bất cư thứ gì như thế này đều được?

Cách khác tôi đã thử đây là với FlowLayoutPanel với tùy chọn TopDown. Tuy nhiên, sau đó tôi cần phải tự thiết lập kích thước và trái/phải neo.

Có cách nào dễ dàng để hoàn thành kịch bản này hay tôi nên gắn bó với những gì tôi đã có?

+3

Thử sử dụng 'Padding' thay vì' Margin' khi điều khiển được gắn vào đế. –

+1

Có, yêu cầu FLP. Đặt thuộc tính Margin trên các điều khiển bên trong nó để tạo khoảng trống. –

Trả lời

9

Thuộc tính docking được đặt sẽ bỏ qua thuộc tính đệm của bạn giữa các điều khiển GroupBox, vì vậy có, đặt cược tốt nhất của bạn là bảng Flow hoặc Bảng để thực hiện việc này.

26

Đặt từng GroupBox trong một Bảng điều khiển, Đặt thuộc tính Dock của bảng điều khiển thành Lên trên, Nhóm thuộc tính Dock Box để điền. Sau đó đặt Padding trên các bảng.

+6

Đệm là chìa khóa! Ít nhất là trong trường hợp của tôi. – Arman

2

Thêm bảng điều khiển trong suốt giả được gắn giữa mỗi hộp văn bản với chiều cao bằng khoảng cách chính xác mà bạn yêu cầu.

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