ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 06.07.2000

Diese Seite wurde zuletzt aktualisiert am 06.07.2000
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Gesperrte Knoten

Zurück...


Anzeige

(-hg) mailto:hg_disablenode@aboutvb.de

Ein Knoten-Element eines TreeView-Steuerelements bietet leider keine eigene Enabled-Eigenschaft an. Aber immerhin können Sie die Vordergrundfarbe eines Elements auf die Farbe setzen, mit der vom System gesperrte Elemente allgemein angezeigt werden (vbGrayText). Und Sie können auch das Symbol (Image) eines Elements auf ein die Sperrung signalisierendes Symbol umschalten. Da allerdings keine echte Sperrung erfolgt, müssen Sie schon selbst an den in Frage kommenden Stellen prüfen, ob ein Element gesperrt oder nicht dargestellt ist.

Zur Prüfung der Sperrung stellen Sie einfach fest, ob die Vordergrundfarbe vbGrayText ist oder nicht:

Public Function NodeEnabled(Node As Node) As Boolean
  NodeEnabled = Not CBool(Node.ForeColor = vbGrayText)
End Function

Das Setzen der Sperrung ist ein wenig aufwändiger. Der Prozedur EnableNode übergeben Sie zunächst das betreffende Knoten-Element und den gewünschten Enabled-Status.

Im nächsten optionalen Parameter geben Sie die Vordergrundfarbe an, wenn das Element Enabled dargestellt werden soll. Sie können hier aber auch eine der beiden SaveForeColorConstants angeben. Die Konstante sfcWindowText (-1) gibt an, dass die in den Bildschirmeigenschaften (und im TreeView standardmäßig vorgegebene) Fenstertext-Farbe (vbWindowText) verwendet werden soll (Voreinstellung). Sie können aber auch festlegen, dass der Wert der Vordergrundfarbe beim sperren in der Tag-Eigenschaft des Elements abgelegt wird, indem Sie bei jedem Aufruf die Konstante sfcStoreInTag (-2) übergeben.

Im optionalen Parameter SetImage legen Sie fest, ob auch das Symbol des Element den Sperrstatus anzeigen soll. Das entsprechende Symbol muss dann natürlich auch in der dem TreeView zugeordneten Imageliste enthalten sein. Am einfachsten ist es, wenn Sie für dieses Symbol den gleichen Namen als Schlüssel verwenden wie für das ungesperrte Symbol, und diesem nur einen Präfix voranstellen, etwa die Zeichenfolge "dis". Sie können aber auch eine beliebige andere Zeichenfolge wählen, die Sie dann im letzten optionalen Parameter übergeben müssen (Voreinstellung ist hier "dis").

Public Enum SaveForeColorConstants
  sfcWindowText = -1
  sfcStoreInTag = -2
End Enum

Public Sub EnableNode(Node As Node, _
 ByVal New_Enabled As Boolean, _
 Optional ByVal ForeColor As Long = sfcWindowText, _
 Optional ByVal SetImage As Boolean, _
 Optional DisabledPrefix As String = "dis")

  Dim nEnabled As Boolean
  
  nEnabled = NodeEnabled(Node)
  Select Case nEnabled
    Case New_Enabled
    Case False
      With Node
        If SetImage Then
          .Image = Mid$(.Image, Len(DisabledPrefix) + 1)
        End If
        If ForeColor > sfcWindowText Then
          .ForeColor = ForeColor
        ElseIf ForeColor = sfcWindowText Then
          .ForeColor = vbWindowText
        Else
          .ForeColor = .Tag
        End If
      End With
    Case True
      With Node
        If SetImage Then
          .Image = DisabledPrefix & .Image
        End If
        If ForeColor < sfcWindowText Then
          .Tag = .ForeColor
        End If
        .ForeColor = vbGrayText
      End With
  End Select
End Sub

Modul modDisableNode (modDisableNode.bas - ca. 1,5 KB)


Artikel
Zum Download-Bereich dieses Artikel
Mail an den Autor dieses Artikels

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche



Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer