War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Exportieren (0) Drucken
Alle erweitern
Erweitern Minimieren

Eigenschaften von Objekten vor dem PropertyGrid verbergen

Veröffentlicht: 31. Mai 2006
Von Mathias Schiffer

Das PropertyGrid-Steuerelement zeigt automatisch alle öffentlichen Eigenschaften eines gewählten Objekts an. Ein Attribut kann dafür sorgen, bestehende Eigenschaften Ihrer Objekte hiervon auszunehmen.

Das PropertyGrid ist ein außerordentlich nützliches Steuerelement. Nicht nur der Oberflächengestaltung für den Endanwender kann es auf vielfältige Weise dienen. Es kann sogar beim Debugging Ihrer Anwendungen zur Laufzeit dabei helfen, Objekteigenschaften per GUI zu betrachten und ändern zu können. Achten Sie jedoch darauf, dass das Grid nicht automatisch auf geänderte Eigenschaftenwerte eines betroffenen Objekts reagiert, verwenden Sie zur Aktualisierung der angezeigten Werte jeweils die Refresh-Methode des Steuerelements.

Dabei ist die grundlegende Anwendung des Steuerelements ganz einfach. In Visual Studio 2003 müssen Sie das Steuerelement zunächst der Toolbar hinzufügen, ab Visual Studio 2005 finden Sie es im Windows Forms-Tab. Nachdem Sie das Steuerelement auf eine Form gezogen haben reicht so bereits ein Einzeiler für umfassende Funktionalität, mit der Sie die Werte für öffentliche Eigenschaften der Form betrachten und wirksam abändern können:

PropertyGrid1.SelectedObject = Form1

Natürlich ist das PropertyGrid dabei nicht auf Forms oder visuelle Anzeigeelemente beschränkt. Es verwertet öffentliche Eigenschaften beliebiger Objekte, angefangen bei einfachsten Klassen bis hin zu komplexen Konfigurationsklassen mit verschiedensten Voreinstellungen, Standardwerten, Auflistungen, selbst erstellten Dialogen etc. Da lacht das Entwicklerherz!

Objekteigenschaften verstecken

Wenn Endanwender das PropertyGrid verwenden können, um die Werte von Eigenschaften einer Klasse abändern zu können, ist das eine ungemein praktische Sache. Jedoch entsteht oft die Situation, dass der Endanwender eben nur einige, nicht aber alle öffentlichen Eigenschaften einer Klasse zu Gesicht bekommen, geschweige denn ändern können soll. Öffentlich sollen die Eigenschaften dennoch aber bleiben.

Nun könnten Sie aus entsprechend umfassenderen Klassen mithilfe von Vererbung, SIchtbarkeit und weiteren Techniken und Tricks dafür Sorge tragen, dass die Klasse für das PropertyGrid so verstümmelt erscheint, dass nur die gewünschten Eigenschaften öffentlich werden und mithin angezeigt werden.

Glücklicherweise ist dies jedoch gar nicht notwendig. Sie können stattdessen im Code Ihrer Klasse solche Eigenschaften, die im PropertyGrid nicht sichtbar sein sollen, einfach mit dem Attribut Browsable versehen und dessen Wert auf False setzen:


Public Class Testklasse

  Private m_Eigenschaft As Boolean

  <System.ComponentModel.Browsable(False)> _
    Public Property Eigenschaft() As Boolean
    Get
      Return m_Eigenschaft
    End Get
    Set(ByVal value As Boolean)
      m_Eigenschaft = value
    End Set
  End Property

End Class

Das Attribut können Sie selbstverständlich auch in Klassen einsetzen, die andere Klassen beerben. So können Sie beispielsweise überschreibbare öffentliche Eigenschaften fremder Objekte vor dem PropertyGrid verstecken.

Andere interessante Attribute

Andere interessante Attribute für Ihr Objekteigenschaften mit Bezug auf das PropertyGrid-Steuerelement sind Description (definiert den Text für den Hilfebereich des PropertyGrids), Category (definiert den Namen der Kategorie für diese Eigenschaft als Text), ReadOnly (gibt an, ob die Eigenschaft im PropertyGrid änderbar sein soll), DefaultValue (legt den standardmäßig anzuzeigenden einer Eigenschaft fest) und DefaultProperty (definiert, welcher Eintrag im PropertyGrid den Eingabefokus erhält).

Weitere Lektüre

Einen einführenden Artikel zur vielseitigen Verwendbarkeit des PropertyGrid-Steuerelements finden Sie auf MSDN Online im Artikel „Optimale Nutzung des PropertyGrid-Steuerelements in .NET Framework“.

Mathias Schiffer widmet sich als freier Technologievermittler und Entwickler großen Projekten ebenso wie arbeitserleichternden Alltagslösungen. Seit Jahren gibt er sein Wissen und seine Erfahrungen in unzähligen Publikationen und Beratungen auch an andere Entwickler und Entscheider weiter. Sie erreichen Mathias Schiffer per E-Mail an die Adresse Schiffer@mvps.org .


Anzeigen:
© 2015 Microsoft