Probleme mit ToolStripMenuItem

16/06/2008 - 09:01 von Jürgen Ewen | Report spam
Hallo,

in einem Toolstrip habe ich mehrere ToolStripMenuItem's, die selbst wiederum
Untereintràge haben, also als DropDown ausgelegt sind.

Angenommen ich habe einen Haupteintrag oben, nenen wir ihn "Datei" und
darunter 5 weitere Eintràge und nennen wir diese Eintrag1 bis Eintrag5. Diese
5 Menüpunkte selber haben Untereintràge. Eintrag1 - 5 werden also jeweils mit
einem Pfeil nach rechts angezeigt.

In Eintrag2 und Eintrag4 setze ich nun die Enabled-Eigenschaft auf false!
nach Programmstart und klick auf Datei, erscheinen die 5 Eintràge, 2 und 4
wie gewünscht ausgegraut, da ja enabled=false. Ich fahre mit der Maus runter,
bei Erreichen von Eintrag1, werden dessen Untereintràge gezeigt, OK, bei
Erreichen von Eintrag2 geschieht nichts auch richtig, bei 3 wieder angezeigt
bei 4 nichts und bei 5 wieder angezeigt.

Jetzt bewege ich den Cursor wieder nach oben, Eintrag für Eintrag und nun
werden bei den Eintràgen deren Eigenschaft auf Enabled=false stehen, die
Untereintràge AKTIV und ANWÄHLBAR angezeigt! Ebenfalls ab jetzt, wenn man
wieder nach unten fàhrt.

Warum? In der MSDN steht was anderes, nàmlich ganz klar dass ein
Enabled=false auf einem Haupteintrag der weitere Eintràge hat, sich dies auch
auf die Untereintràge auswirkt. Dem ist aber nicht so. Ich würde erwarten
dass die Untereintràge nicht erscheinen, so wie beim ersten ansteuern der
Eintràge.

Ein Bug? Habe ich was übersehen? Bei MS finde ich rein gar nichts darüber,
bin auch verwundert sonst nichts dazu zu finden!

Ach ja, VS2005 mit SP1 und Framework 2.0.

Gruß Jürgen
 

Lesen sie die antworten

#1 Peter Götz
16/06/2008 - 11:49 | Warnen spam
Hallo Jürgen,

das von Dir geschilderte Problem hatte ich hier
auch schon. Immer wenn das zuletzt angezeigte
Menü Untermenüs hat, werden beim nàchsten
Menü mit Untermenüs, diese als "Enabled" angezeigt,
auch wenn das zugehörige übergeordnete Menü
"Enabled = False" ist.
Ein offensichtlicher Bug.

Workaround:
Im _EnabledChanged-Ergeignis des übergeordneten
Menüs (hier mnuDatei), die Enabled-Eigenschaft der
untergeordneten SubMenüs entspr. setzen.

Private Sub mnuDatei_EnabledChanged _
(ByVal sender As Object, _
ByVal e As System.EventArgs _
) Handles mnuDItem1.EnabledChanged

Dim DDI as ToolStripDropDownItem
For Each DDI In mnuDatei.DropDownItems
DDI.Enabled = mnuDItem1.Enabled
Next
End Sub


Dieser Fehler ist reproduzierbar in VS2005 (FW2.0)
und in VS2008 (FW3.5)

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen