vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
alle MenuItems auf Enable = false setzen ausßer das aktuelle 
Autor: RainerZufall
Datum: 19.06.15 11:18

Hallo,

ich versuche gerade heraus zu bekommen, wie ich alle Einträge eines Menüs sperren kann, ausser das aktuell gedrückte.

Ich habe ein Menustrip, dort ein Menüeintrag namens Filter (mnuFilter). Unterhalb von Filter gibt es insgesamt 4 Einträge. Wenn ich auf einen der Einträge drücke, wird der Menüeintrag als Checked gesetzt und ein Filter auf meine BindingSource angewendet.

Jetzt würde ich gerne erreichen das, wenn ein Eintrag gewählt wurde, das dann alle anderen Einträge gesperrt werden, sodass diese nicht mehr gedrückt werden können. wenn der aktuelle Eintrag wieder gedrückt wird (also der Filter wieder aufgehoben wird) sollen alle einträge wieder entsperrt sein.

Mein Versuch mit
Private Sub DisableEnable()
        Dim myCheck As ToolStripMenuItem
        For Each myCheck In mnuFilter.DropDownItems
            If myCheck.Checked AndAlso myCheck.Enabled Then
                Return
            Else
                myCheck.Checked = False
                myCheck.Enabled = False
            End If
        Next
    End Sub
funktioniert leider nur so, das zwar die Menüeinträge gesperrt werden, aber nicht mehr entsperrt.

Wie kann ich meinem Code sagen, das er alle sperren und entsperren soll, außer das aktuell gedrückte?

Vielen Dank

Rainer

Public Sub Autobahn(ByVal Regen As Boolean)
If Regen Then
MessageBox.Show("SOFORT LICHT EINSCHALTEN!!!", "Achtung es regnet!", MessageBoxButtons.OK, MessageBoxIcon.Warning)
End If
End Sub

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: alle MenuItems auf Enable = false setzen ausßer das aktuelle 
Autor: GPM
Datum: 19.06.15 17:53

Eventuell so:
Public Class Form1
    Dim Ts As New ToolStrip With {.Parent = Me}
    Dim WithEvents Tmi As New ToolStripMenuItem
 
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) _
      Handles MyBase.Load
        Tmi.Text = "Filter"
        For i As Int32 = 0 To 3
            Tmi.DropDownItems.Add(New ToolStripMenuItem With {.Text = "Filter" _
              & i.ToString, .CheckOnClick = True})
        Next
        Ts.Items.Add(Tmi)
    End Sub
 
    Private Sub Mi_ItemClicked(sender As Object, e As _
      ToolStripItemClickedEventArgs) Handles Tmi.DropDownItemClicked
        Dim Ci = CType(e.ClickedItem, ToolStripMenuItem)
        For Each Itm As ToolStripMenuItem In Tmi.DropDownItems
            If Not Itm Is Ci Then
                Itm.Enabled = Not Itm.Enabled
            End If
        Next
    End Sub
End Class
MfG GPM
0
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: alle MenuItems auf Enable = false setzen ausßer das aktuelle 
Autor: RainerZufall
Datum: 22.06.15 08:47

Hey GPM,

das ist genau das, was ich erreichen wollte.

Super, Vielen Dank. Habs auf meinen Code umgeändert und es klappt bestens.

Grüße

Rainer

Public Sub Autobahn(ByVal Regen As Boolean)
If Regen Then
MessageBox.Show("SOFORT LICHT EINSCHALTEN!!!", "Achtung es regnet!", MessageBoxButtons.OK, MessageBoxIcon.Warning)
End If
End Sub

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 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