2009-03-23 5 views
9

Trong thế giới của WinForms .Net controlsComponent Vs Control

Sự khác biệt giữa Component and Control là gì?

Kiểm soát có thể chứa các thành phần không? Thành phần có thể chứa Điều khiển không?

+0

Bài viết này có thể trợ giúp: http://msdn.microsoft.com/en-us/library/0b1dk63b.aspx –

Trả lời

5

Kiểm soát có tất cả các đường ống dẫn nước cần thiết để hoạt động như một cửa sổ. Khả năng trả lời các thông điệp Window (WndProc) và có một Xử lý được quan trọng nhất. Thành phần bị thiếu tất cả. Nó thực sự là khá đơn giản, nó có hỗ trợ thời gian thiết kế và nó có thể được xử lý, đó là về nó.

Thành phần vẫn có thể có đại diện thời gian chạy, OpenFileDialog là ví dụ tốt nhất. Nhưng đó thực sự là một hộp thoại được tích hợp trong Windows, chứ không phải Windows Forms.

+0

Và các thành phần xuất hiện không có sự kiện 'Tải'. Vì vậy, làm thế nào để bạn thực hiện khởi tạo mà cần phải xảy ra sau khi các hình thức giữ thành phần đã được nạp ??? –

+0

Nói chung, một thành phần không biết hình thức nó được xếp vào thời gian chạy. Vì vậy, sẽ không quan tâm đến trạng thái tải của biểu mẫu hoặc và hàm tạo là đủ tốt để thực hiện tất cả các yêu cầu khởi tạo. Nhấp vào nút Đặt câu hỏi để giải thích các yêu cầu của bạn. –

+0

Thành phần của tôi chắc chắn quan tâm, vì tất cả các trình xử lý sự kiện đều là null khi hàm tạo chạy. Bạn có thể xem câu hỏi của tôi [ở đây] (http://stackoverflow.com/questions/17332643/determining-when-the-owner-of-a-component-has-loaded). Cảm ơn. –

1

Thành phần chỉ là biểu diễn của API đối tượng/phụ. ví dụ. ImageList là một thành phần vô hình và chỉ là một API thành một tập hợp các hình ảnh. Thực tế bạn có thể kéo và thả chúng vào các biểu mẫu chỉ là đường trong nhà thiết kế.

Điều khiển được thiết kế để hiển thị/tương tác/có thể lồng.

+0

Còn có một phần khác của câu hỏi. – NileshChauhan

0

Để trả lời nhận xét của bạn, Thành phần và Kiểm soát có thể được nhìn thấy trong trình duyệt đối tượng như từ các hệ thống phân cấp đối tượng khác nhau. Một thành phần không thể được thêm vào trong một điều khiển, vì bộ sưu tập điều khiển chỉ chấp nhận các đối tượng có kiểu điều khiển cơ sở.

Thành phần không thể chứa Điều khiển.

1

Thành phần về cơ bản là một lớp (có thể là dll, đối tượng Activex).

  • Nó không có khả năng Giao diện người dùng là lý do tại sao bạn không thể nhìn thấy biểu diễn trực quan.
  • Thiết bị di động và không dành riêng cho bất kỳ ngôn ngữ nào.

Mặt khác, kiểm soát là thành phần cung cấp khả năng Giao diện người dùng.

  • Vì điều khiển có giao diện người dùng, bạn có thể thấy biểu diễn trực quan của nó.
  • Đó là ngôn ngữ cụ thể và không di động.