2010-02-09 10 views
5

Mam niestandardowej klasy, która wynika z SplitContainer:klienta Designer dla Kontroli

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

Teraz kiedy prawym przyciskiem myszy i wybierz View Designer Chciałbym zobaczyć SplitContainer i edytować , podobnie jak przy domyślnych kontrolkach (upuszczę panel w nim itp.). Wszystko, co widzę, to komunikat o dodaniu elementów sterujących i przełączeniu na Widok kodu.

Jak to osiągnąć?

Odpowiedz

9

Aby dodać funkcjonalność czasu projektowania, np. Dodatkowe operacje (zwane listami działań i czasownikami w zależności od sposobu ich dostarczania) lub przeciąganie elementów wizualnych, takich jak nagłówki lub podzielone paski, trzeba zaimplementować niestandardowego projektanta (zwykle pochodzącego z ControlDesigner), który pozwala projektantowi Formsoft zrozumieć sposób interakcji z niestandardową formantem w czasie projektowania.

Usługa MSDN ma a lengthy section na temat dodawania wspomagania projektowania dla elementów sterujących. Opisuje wszystko od type converters do extender providers i designer serialization do designer customization.

Dodatkowe zasoby

This article on CodeProject zawiera informacje na temat tworzenia projektantów dla kontroli celnych. Istnieją również użyteczne wskazówki: here oraz this other StackOverflow question.

1

Podczas pisania kontrolki należy pamiętać o dodaniu logiki czasu projektu.

Aby uzyskać więcej informacji, zobacz numer this (.NET 1.0) article on MSDN. Here to kolejny artykuł z 2003 roku.

+0

Dzięki, ale nie mogę znaleźć sposobu i jakiej logiki projektu dodać do tego konkretnego kodu i jak zakończyć tworzenie/wypełnianie mojej kontroli w Projektancie ... – MysticEarth

3

Tylko klasy Form i UserControl mają projektantów, którzy umożliwiają edycję elementów podrzędnych podczas projektowania. Stworzenie własnego projektanta, aby dać SplitContainer takie samo zachowanie, nie jest takie proste, przede wszystkim dlatego, że jest tak słabo udokumentowane i trudne do debugowania. Musisz przeanalizować kod strukturalny za pomocą Reflectora, aby uzyskać właściwy wynik.

Rozwiąż ten problem, umieść SplitContainer w formancie użytkownika. Ustaw właściwość Dock na Fill. Teraz jest łatwe.