2011-08-28 14 views
6

Có thể gắn điều khiển với điều khiển khác không?có thể gắn điều khiển với điều khiển khác không?

Cho phép nói rằng tôi muốn Button1 của tôi giữ khoảng cách 4px từ điều khiển Textbox1 mà ​​không cần
bằng cách sử dụng điều khiển FlowLayoutTable?

"Why would be this advantageous?" - one could ask 

Cũng cho phép nói rằng bạn có một SplitContainer với một splitter dọc và bạn có Hộp để
trong SplitContainer.Panel1 được neo vào bên trái và phải nhưng
chiều rộng kích thước tối đa của họ là nhỏ hơn so với bạn cho phép vào chiều rộng SplitContainer.Panel1 để có (có thể
bởi vì bạn muốn văn bản xuất hiện tại đó hoặc vì đệm bổ sung hoặc bất cứ điều gì, bạn đặt tên cho nó)

Bây giờ chúng ta hãy nói rằng bạn cũng có một nút bên cạnh TextBox1 và bạn không muốn TextBox1 để là
chồng chéo bởi Button1 vì nó mở rộng đến nay.

Nếu tôi muốn hộp văn bản của tôi lấp đầy SplitContainer.Panel1 theo cách mà nó để trống khoảng cách
Điều khiển Button1 trong khi cả hai đều được neo ở bên phải thì tôi sẽ làm như thế nào?

+0

Khó hình dung được từ câu hỏi. Neo là thích hợp cho bố trí đơn giản. Triển khai bố trí tùy chỉnh bằng cách đăng ký sự kiện SplitterMoving hoặc sự kiện LocationChanged hoặc SizeChanged của điều khiển và thay đổi thuộc tính Vị trí hoặc Kích thước. –

+0

@Hans Cảm ơn, tôi nghĩ rằng nó sẽ là một cách giải quyết hoặc nhiều hơn có thể là PROPER WAY để làm điều đó, tôi đã tự hỏi nếu nó có thể, nhưng câu trả lời của bạn đặt ra một câu hỏi trong tôi, mà tôi có thể hoặc không thể hỏi ở đây hoặc trong một câu hỏi khác :) – Qqbt

+0

@Hans Câu hỏi của bạn đã kích hoạt một sự kiện và tôi gọi bạn là WithEvents, tôi đang nghe :) – Qqbt

Trả lời

5

Tôi sử dụng rộng rãi TableLayoutPanels và FlowLayoutPanels để thực hiện việc này. Đối với trường hợp cụ thể, tôi sẽ sử dụng TableLayoutPanel với ba cột và một hàng cho mỗi TextBox.

Cột 1: Chiều rộng tự động, chứa Nhãn tất cả với AutoSize = True.
Cột 2: Chiều rộng 100%, chứa Hộp văn bản tất cả đều có Anchor = Left, Right.
Cột 3: Chiều rộng tự động, chứa Nút trong hàng thích hợp.

Tiếp theo, tôi đặt tất cả các hộp văn bản, ngoại trừ một hộp bên cạnh nút, ColumnSpan = 2. Sau đó, chỉ cần đặt TableLayoutPanel trong SplitPanel và thiết lập Dock = Fill.

0

nó sẽ là một chuỗi trực tiếp nên được lưu thông từ bên trái và tiếp tục hoạt động cho phép bố cục bên phải.

  1. Mục danh sách an toàn cần được cung cấp.
  2. Mục danh sách tất cả mọi thứ sử dụng trong phương pháp này sẽ được cung cấp và được kiểm tra;