vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2017
 
zurück
Rubrik: Controls   |   VB-Versionen: VB2010 - VB201518.08.17
ToolStripDropDownButton mit erster Ebene aus MenuItems aus einer DataTable erstellen

Der Tipp vermittelt Code, der geeignet ist, Menüpunkte für einen ToolStriDropDownButton zu erstellen, die aus einer Datentabelle (bspw. SQL) erzeugt werden.

Autor:   Dietrich HerrmannBewertung:     [ Jetzt bewerten ]Views:  599 
ohne HomepageSystem:  Vista, Win7, Win8, Win10kein Beispielprojekt 

Neue Version! sevEingabe 3.0 (für VB6 und VBA)
Das Eingabe-Control der Superlative! Noch besser und noch leistungsfähiger!
Jetzt zum Einführungspreis       - Aktionspreis nur für kurze Zeit gültig -

Der Tipp vermittelt Code, der geeignet ist, Menüpunkte für einen ToolStriDropDownButton zu erstellen, die aus einer Datentabelle (bspw. SQL) erzeugt werden. (Nur erste Ebene von Menüpunkten)

Zunächst die Vereinbarungen:

Private WithEvents dropDownButton As ToolStripDropDownButton
Private WithEvents dropDown As ToolStripDropDown
Private WithEvents dropItem As ToolStripMenuItem

Ausgehend von einer Datentabelle, die die Texte der Menüpunkte enthält, wird das Control ToolStripDropDownButton für das in einer Form enthaltene ToolStrip erzeugt.

Dabei sind:

  • myToolStrip: der ToolStrip
  • myDataTable: die Datentabelle
  • dropA: ein Array zur Zwischenspeicherung der Menüpunkt-Texte

Code (Reihenfolge der Control-Erstellung ist wichtig):

dropDown = New ToolStripDropDown
With dropDown
  .BackColor = Color.Green  ' Bsp. Backcolor
  ' weitere Eigenschaften setzen
End With
dropDownButton = New ToolStripDropDownButton
With dropDownButton
  .Text = "myDropDown"
  .DropDown = dropDown
  ' weitere Eigenschaften setzen
End With
Dim dropA(myDataTable.Rows.Count - 1) As ToolStripMenuItem
For i As Short = 0 To myDataTable.Rows.Count - 1
  dropItem = New ToolStripMenuItem
  With dropItem
    .BackColor = Color.Beige  'Bsp. Backcolor
    .Text = myDataTable.Rows(i).Item("myMenuPointText")
    ' weitere Eigenschaften setzen
  End With
  dropA(i) = dropItem
Next 
dropDown.Items.AddRange(dropA) ' die Menütexte ins Control
ToolStrip.items.Add(dropDownButton)

Wenn man den dropDownButton an eine ganz bestimmte Stelle des Toolstrip einsetzen möchte, kann man das mit folgender Hilfsfunktion erreichen:

' ermitteln des Index eines ToolstripItem mittels seines Namens
Public Function IndexOfToolstripItem(theToolstrip As ToolStrip, _
  theItemName As String) As Short
 
  Dim i As Short = 0
 
  For Each it As ToolStripItem In theToolstrip.Items
    If theItemName = it.Name Then Exit For
    i += 1
  Next
  Return i
End Function

Dann programmieren:

Dim ix As Short = IndexOfToolstripItem(Navigator, "myToolStripItemName") - 1
ToolStrip.Items.Insert(ix, dropDownButton)

Für die Anwendung der MenuItems kann man das Event „dropDown.Itemclicked“ verwenden.

Viel Erfolg.

Dieser Tipp wurde bereits 599 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2017 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel