2010-04-08 24 views
10

Đây phải là Câu hỏi thường gặp, nhưng tôi không thể tìm thấy câu hỏi trùng lặp!Làm cách nào để WinForm Designer hoàn toàn bỏ qua thuộc tính trên điều khiển tùy chỉnh?

Có rất nhiều thuộc tính khác nhau kiểm soát những gì mà Trình thiết kế WinForm thực hiện với thuộc tính trên điều khiển tùy chỉnh, tôi không bao giờ rõ ràng về thuộc tính tôi nên sử dụng trong trường hợp này.

Tôi đang tìm kiếm:

  • Designer không hiển thị bất động sản trong lưới
  • Designer không đọc giá trị của tài sản
  • Designer không thiết lập thuộc tính mặc định giá trị
  • Ví dụ: Nhà thiết kế hoạt động như thể thuộc tính không có ở đây.
  • Designer không phàn nàn nếu nó đã được thực hiện một trong những trên trước khi các thuộc tính đã được thêm vào (cứng!)

Background.

Các mã được đem lại cho tôi vấn đề là:

this.eventListControl.FilterSets = 
    ((SystList<FilterSet>)(resources.GetObject("eventListControl.FilterSets"))); 

Thuộc tính FilterSets nên không bao giờ có được xúc động bởi sự thiết kế winforms; nó bây giờ không phải là Serializable và MsDev rơi trên mỗi khi một hình thức sử dụng eventListControl được thay đổi!

+0

Thêm vào đó, ILMerge không đúng cách viết lại này, vì vậy nếu 'FilterSets' đang ở trong một DLL mà có sáp nhập vào, dòng mã này sẽ ném. –

Trả lời

28

Tôi nghĩ rằng bạn có thể sử dụng [Browsable (false)][DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]

Thuộc tính thứ hai ngăn cản bất động sản xuất hiện trong InitializeComponent

+0

cảm ơn, điều đó ngăn chặn desinger thêm nó vào InitializeComponents trong các hình thức mới, tuy nhiên các nhà thiết kế vẫn không thể đọc các tập tin resouce cho các hình thức mà allready có kiểm soát, vì vậy tôi phải chỉnh sửa các tập tin resouce bằng tay. –

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