2009-08-29 39 views
19

Khi chúng tôi thêm bất kỳ giao diện người dùng hoặc vùng chứa nào trong WinForms, thành phần được thêm vào sau đây sẽ xuất hiện trên các thành phần được thêm trước đó, chúng ta có thể nói nó nằm trong lớp cao hơn.Thứ tự lớp thành phần giao diện người dùng WinForm

Làm cách nào để thay đổi thứ tự lớp đó hoặc thứ tự thành phần sau khi thêm thành phần?

Trả lời

27

Có phải khi bạn nạp linh kiện theo mã hoặc trong thiết kế không? Nếu trong trình thiết kế, bạn có thể sử dụng định dạng Định dạng -> Đơn đặt hàng -> Gửi lạiĐịnh dạng -> Đặt hàng -> Mang đến lệnh trước. Gửi tớiĐưa vào Mặt trận cũng có sẵn trong trình đơn ngữ cảnh khi bạn nhấp chuột phải vào điều khiển, cũng như trong thanh công cụ "Bố cục" sẽ tự động xuất hiện khi bạn làm việc trong trình thiết kế biểu mẫu.

4

Bạn có thử chơi với số Z-Order không?

Xem thêm: Control.SentToBack phương pháp - Hầu hết các điều khiển Winform sẽ hỗ trợ điều này.

30

Khi bạn đặt nhiều hơn một điều khiển ở cùng một vị trí, đầu tiên sẽ kết thúc ở trên và mặt kia sẽ kết thúc bên dưới. Thường thì đây là kết quả của một lỗi nhỏ, chẳng hạn như sử dụng tính năng neo và gắn không chính xác để có thể thay đổi kích thước form.In một số trường hợp, tuy nhiên, bạn có thể muốn chồng chéo điều khiển cho một hiệu ứng cụ thể.

Khi kiểm soát chồng lên nhau, đó là chỉ mục z xác định kiểm soát nào kết thúc ở trên cùng.Essentially, mọi điều khiển tồn tại trong lớp được đánh số riêng biệt. Kiểm soát có lớp z-index 1 sẽ xuất hiện phía trên điều khiển trong z-index layer 2 nếu chúng chồng lên nhau. Thông thường, chỉ mục z của một nhóm các điều khiển được xác định theo thứ tự mà bạn thêm các điều khiển, để điều khiển cuối cùng bạn thêm luôn ở lớp trên cùng (với z- chỉ số 0).

Tuy nhiên, bạn có thể thay đổi các tùy chọn này.

Để xác định hoặc đặt chỉ mục z của điều khiển, bạn có thể sử dụng phương pháp GetChildIndex()SetChildIndex() của Bộ sưu tập điều khiển. Đây là ví dụ di chuyển điều khiển đến lớp thứ ba trong chỉ mục z.

Controls.SetChildIndex(ctrl, 2); 

Thông thường, bạn sẽ không cần điều khiển kiểu chi tiết này. Đồng thời, bạn chỉ muốn thả điều khiển vào mặt sau của chỉ mục z (lớp dưới cùng) hoặc mang Bạn có thể hoàn thành tính năng này tại thời điểm thiết kế bằng cách nhấp chuột phải vào điều khiển và chọn Bring to Fron hoặc Send to Back.Bạn cũng có thể thực hiện cùng một tác vụ theo chương trình bằng cách sử dụng phương thức Control.BringToFront() hoặc Control.SendToBack().

ctrl.BringToFront(); // This is equivalent to Controls.SetChildIndex(ctrl,0); 
+0

Tôi thấy hữu ích. Cũng tìm thấy GetChildIndex để tìm ra tại thời gian chạy mà kiểm soát được trên đầu trang. Cảm ơn. –

11

Trong chế độ xem thiết kế, bạn cũng có thể mở bảng "Tài liệu phác thảo" để xem cấu trúc cây của biểu mẫu/kiểm soát hiện tại của bạn, sau đó kéo các thành phần xung quanh, "lên" và "xuống" để đưa lên trước và trở lại, và cũng vào và ra khỏi container.

+1

Chế độ xem> OtherWindows> DocumentOutline hoặc sử dụng phím tắt Ctrl + W, U –

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