2010-02-09 38 views
5

Tôi đã có một lớp tùy chỉnh mà xuất phát từ SplitContainer:Tuỳ chỉnh thiết kế cho một Control

namespace Builder.Components 
{ 
    public partial class ProjectSidebar : SplitContainer 
    { 
     public ProjectSidebar() 
     { 
      InitializeComponent(); 
     } 
    } 
} 

Bây giờ khi tôi nhấp chuột phải và chọn View Designer Tôi muốn xem các SplitContainer và chỉnh sửa nó , như tôi sẽ làm với các điều khiển mặc định (thả một bảng điều khiển trong đó, vv). Tất cả những gì tôi thấy là thông báo thêm điều khiển và chuyển sang Chế độ xem mã.

Làm cách nào để đạt được điều này?

Trả lời

9

Để thêm chức năng thiết kế thời gian như các hoạt động bổ sung (được gọi là Danh sách hành động và động từ tùy thuộc vào cách chúng được cung cấp) hoặc kéo các yếu tố hình ảnh như tiêu đề hoặc thanh chia đôi, bạn cần để triển khai một nhà thiết kế tùy chỉnh (thường có nguồn gốc từ ControlDesigner) cho phép nhà thiết kế Windows Forms hiểu cách tương tác với điều khiển tùy chỉnh của bạn tại thời điểm thiết kế.

MSDN có a lengthy section khi thêm hỗ trợ thiết kế cho các điều khiển của bạn. Nó mô tả mọi thứ từ type converters đến extender providersdesigner serialization đến designer customization.

Tài nguyên bổ sung

This article on CodeProject chứa thông tin về việc tạo ra các nhà thiết kế cho các điều khiển tùy chỉnh. Ngoài ra còn có một số mẹo hữu ích here và trong this other StackOverflow question.

1

Khi viết điều khiển, bạn cần đảm bảo thêm logic thời gian thiết kế cho nó.

Xem this (.NET 1.0) article on MSDN để biết thêm chi tiết. Here là một bài viết khác từ năm 2003.

+0

Cảm ơn, nhưng tôi dường như không thể tìm thấy cách thức và logic thiết kế nào để thêm vào mã cụ thể này và cách hoàn thành việc tạo/điền kiểm soát của tôi trong Nhà thiết kế ... – MysticEarth

3

Chỉ có các lớp Form và UserControl có các nhà thiết kế cho phép bạn chỉnh sửa các điều khiển con của họ tại thời điểm thiết kế. Tạo trình thiết kế của riêng bạn để cung cấp cho SplitContainer cùng một hành vi không phải là chính xác đơn giản, hầu hết tất cả vì nó quá kém tài liệu và khó gỡ lỗi. Bạn sẽ cần phải nghiên cứu mã khung với Reflector để làm cho nó đúng.

Làm nổi bật vấn đề này, đặt SplitContainer trong điều khiển người dùng. Đặt thuộc tính Dock của nó là Fill. Bây giờ nó rất dễ dàng.

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