So aktivieren Sie ein design-Unterstützung in einem custom control?
Werde ich versuchen zu erklären, was ich bin nach. Ich weiß nicht, der Fachbegriff dafür, also hier geht:
Beispiel 1:
Wenn ich eine ListView in einem Formular und einige Spalten hinzufügen, ich bin in der Lage, in-Design-Zeit, zu klicken-und-ziehen Sie die Spalten, um die Größe ändern.
Beispiel 2:
Jetzt Stelle ich eine ListView in ein UserControl mit dem Namen "MyCustomListView" (und vielleicht fügen Sie eine Methode zu verbessern Sie es irgendwie).
Wenn ich weiß, das "MyCustomListView" auf eine Form, die ich bin nicht in der Lage zu klicken-und-ziehen Sie die Spaltenüberschriften, um die Größe ändern, in der Design-Zeit.
Gibt es eine Möglichkeit zu leicht zu machen, dass passieren? Irgendeine form von "übergeben Sie das click-and-drag-event für das zugrunde liegende Steuerelement und lassen Sie, dass ein Steuerelement seine Magie". Ich bin nicht wirklich auf der Suche, um recode, nur pass auf die Maustaste (oder was auch immer es ist) und lassen Sie die, in diesem Fall, ListView zu reagieren, wie es im ersten Beispiel oben.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Windows Forms-designer widmet der designer für die meisten Klassen steuert. Die designer für ein ListView-Steuerelement System.Windows.Formen.Design.ListViewDesigner, eine interne Klasse in der System.Design.dll Montage. Diese Klasse bietet Ihnen die Möglichkeit, ziehen Sie die Spaltenüberschriften.
Einem UserControl die das System verwendet.Windows.Formen.Design.Die designer-Klasse ControlDesigner. Es tut nichts besonderes, nur legt ein Rechteck um die Steuerung mit Ziehpunkten. Sie können sehen, wo diese Position: nachdem Sie Ihre Benutzer-Steuerelement in einem Formular, es ist ControlDesigner zur Gestaltung der Klasse, ListViewDesigner ist nicht im Bild. Sie verlieren damit die Fähigkeit, ziehen Sie die Spaltenüberschriften. Beachten Sie auch, dass ControlDesigner nicht geben Zugriff auf die Steuerelemente innerhalb des UC.
Das ist reparierbar jedoch, indem Sie Ihre eigenen designer. Beginnen Sie mit Projekten + Verweis Hinzufügen, wählen Sie System.Design. Müssen Sie eine öffentliche Eigenschaft, um den UC zu setzen, die Liste anzeigen und wenden Sie die [DesignerSerializationVisibility] - Attribut zu ermöglichen, veränderten Eigenschaften, um gerettet zu werden. Und gelten der [Designer] Attribut der UC-Klasse zu ersetzen, um die Standard-designer. Sie alle ähneln sollte (mit dem Standard-Namen-und ein ListView-Anzeige "Mitarbeiter"):
Die Ansicht der Liste in der Benutzer-Steuerelement kann jetzt angeklickt werden und gestaltet als normal.