Trong WinForms, làm thế nào tôi có thể tạo một UserControl
khi tôi đưa vào biểu mẫu của mình, tôi có thể thêm các điều khiển khác bên trong bằng cách kéo chúng từ hộp công cụ, giống như với tất cả các điều khiển vùng chứa (bảng, hộp nhóm, v.v ...)? Tôi đã cố gắng thêm điều khiển bằng cách thả chúng trong tầm kiểm soát của mình nhưng sau đó khi tôi di chuyển điều khiển của mình, điều khiển tôi đã thêm vào đúng vị trí của chúng, điều này sẽ không xảy ra nếu thay vì điều khiển của tôi. di chuyển với bảng điều khiển).Làm thế nào để tạo một UserControl mà bạn có thể thả các điều khiển khác trong đó?
Trả lời
Không giống như điều khiển Panel
ví dụ: UserControl
không hoạt động như điều khiển vùng chứa khi nó được đặt trên một biểu mẫu khác. Có hỗ trợ thiết kế toàn thời gian trong khi bạn đang tự thiết kế UserControl
, nhưng hành vi mặc định của nó không cho phép nó hoạt động như một điều khiển cấu thành sau khi nó được đặt trên một biểu mẫu khác. Đây là lý do tại sao bạn không thể thêm các điều khiển khác vào nó bằng cách kéo chúng từ hộp công cụ.
Để thêm loại hành vi này vào UserControl
, bạn cần thêm DesignerAttribute
vào định nghĩa của lớp tùy chỉnh UserControl
của mình. Ví dụ:
using System.ComponentModel;
using System.ComponentModel.Design;
[Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))]
public class MyUserControl : System.Windows.Forms.UserControl
{
//...your code here
}
(. Xem MSDN bài viết liên quan để đọc thêm)
Nếu bạn muốn thực hiện hỗ trợ nhà thiết kế đầy đủ cho lồng nhau điều khiển bên trong UserControl
bạn, đây là một chút khó khăn hơn. Để có một cuộc thảo luận toàn diện hơn, hãy xem this article trên CodeProject.
WinForms hoặc WPF? –
WinForms ........ – Juan