Frage

Ich habe ein benutzerdefiniertes Steuerelement geschrieben, die das Aussehen eines Tabellenkopf nachahmt. Die Säulen zieht sich durch eine Sammlung von Objekten mit einem Text-String-Eigenschaft und einer Breite int Eigenschaft gegeben. Beide haben Browsable, Category, DefaultValue und Description Attribute hinzugefügt. Im Designer ist die Sammlung editierbar und kann der Benutzer den Text und Breite festgelegt, wie sie es für eine Kontrolle, und die Attribute sind geehrt, wie ich gehofft hatte. Allerdings kann der Benutzer den Namen der Variablen bearbeiten; der erzeugte Code sieht wie folgt aus:

HeaderMimicColumn headerMimicColumn1 = new HeaderMimicColumn();
HeaderMimicColumn headerMimicColumn2 = new HeaderMimicColumn();
HeaderMimicColumn headerMimicColumn3 = new HeaderMimicColumn();
...

Ist es möglich zu machen, so dass der Benutzer die Namen der Variablen für die Spalten verwendeten angeben kann, in dem Designer? Wenn ja, wie?

EDIT:. Nur um klar zu sein, HeaderMimicColumn nicht aus System.Windows.Forms.Control nicht ableiten, es ist nur eine einfache Klasse mit diesen beiden Eigenschaften und ein Paar von Ereignissen, die Feuer, wenn sie sich ändern

Ich sollte wohl auch erklären, dass die Sammlung seiner DesignerSerializationVisibility Contents gesetzt hat.

War es hilfreich?

Lösung

Wenn nicht-Component-Objekte Teil einer Sammlung sind, die durch den DesignerSerializationVisibility.Contents Mechanismus beibehalten wird, dann wird jedes Objekt in dieser Sammlung nicht über eine eigene Identität. Es ist einfach ein Teil der übergeordneten Kollektion. Daher können Sie ihre Namen nicht gesetzt, da sie buchstäblich nicht als separate Objekte vorhanden sind.

Wenn Sie Ihr HeaderMimicColumn wollen Teil Ihrer Sammlung zu sein und separat adressierbar (wie Spalten in einem Listview), werden Sie zumindest haben sie von System.ComponentModel.Component. ableiten und dann mit den anderen Problemen, die das bringen wird:)

Andere Tipps

Der Anwender sollte bereits in der Lage sein, dies zu tun, indem Sie die folgenden

tun
  1. Hit F4 im Designer (bringt die Eigenschaften-Fenster nach oben)
  2. Wählen Sie headerMimicColumn1 in der Combobox Dropdown
  3. Ändern Sie den Namen Feld
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top