Kein Checked in erzeugtem Menu

30/04/2008 - 14:06 von Georg Weisse | Report spam
Hallo zusammen,

ich versuche ein Menü zu basteln...
Das funktioniert auch ganz gut, aber es gelingt mir leider nicht, den
'Checked-Haken' zu setzen, da mein mnuTest(Index) kein .checked besitzt.
Ich kann zwar mit:
CType(CType(sender, System.Windows.Forms.ToolStripItem).checked, Boolean)
den Ist-Zustand abfragen, finde aber keinen Weg ihn zu setzen.

Ich hoffe, dass Ihr mir wieder einmal weiter helfen könnt.
Schönen Tag noch und einen schöne 1. Mai,

Georg



Private mnuTest(3) As ToolStripItem

Private Sub frmMain_Load(...) Handles MyBase.Load
mnuTest_erzeugen()
End Sub

Private Sub mnuTest_erzeugen()
Dim i As Integer
Dim MM As ToolStripMenuItem = mnuDatei
mnuTest(0) = MM.DropDownItems.Add("Test 0")
mnuTest(1) = MM.DropDownItems.Add("Test 1")
MM.DropDownItems.Add("-")
mnuTest(2) = MM.DropDownItems.Add("Test 2")
mnuTest(3) = MM.DropDownItems.Add("Test 3")
For i = 0 To 3
mnuTest(i).Tag = i
AddHandler mnuTest(i).Click, AddressOf mnuTest_Click
Next i
End Sub

Private Sub mnuTest_Click(ByVal sender As Object, _
ByVal e As System.EventArgs)
Dim Index As Integer
Index = CType(CType _
(sender, System.Windows.Forms.ToolStripItem).Tag, _
Integer)

Select Case Index
Case 1
'Machwas
End Select
Debug.Print("Index: " & Index, mnuTest(Index).Text)
End Sub
 

Lesen sie die antworten

#1 Peter Fleischer
30/04/2008 - 20:53 | Warnen spam
"Georg Weisse" schrieb im Newsbeitrag
news:

ich versuche ein Menü zu basteln...
Das funktioniert auch ganz gut, aber es gelingt mir leider nicht, den
'Checked-Haken' zu setzen, da mein mnuTest(Index) kein .checked besitzt.
Ich kann zwar mit:
CType(CType(sender, System.Windows.Forms.ToolStripItem).checked, Boolean)
den Ist-Zustand abfragen, finde aber keinen Weg ihn zu setzen.

Ich hoffe, dass Ihr mir wieder einmal weiter helfen könnt.
Schönen Tag noch und einen schöne 1. Mai,



Hi Georg,
vielen Dank für die Wünsche zum Kampftag der Werktàtigen. Ich habe gleich
mal gegen deinen Code gekàmpft und ihn mal umgestrickt. Das funktioniert
jetzt zwar, entspricht aber nicht meinen Vorstellungen einer soliden Lösung.
Ich würde es anders machen. Hiwer erst einmal dein Konzept:

Option Strict On
Option Infer On

Public Class Form1

Dim mnuDatei As New ToolStripMenuItem
Dim mnuTest(3) As ToolStripButton

Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Load
Dim ms As New MenuStrip
mnuDatei.Text = "Menüpunkt"
ms.Items.Add(mnuDatei)
Me.Controls.Add(ms)
mnuTest_erzeugen()
End Sub

Private Sub mnuTest_erzeugen()
mnuTest(0) = New ToolStripButton("Test 0")
mnuTest(1) = New ToolStripButton("Test 1")
mnuTest(2) = New ToolStripButton("Test 2")
mnuTest(3) = New ToolStripButton("Test 3")
'
Dim MM As ToolStripMenuItem = mnuDatei
For i As Integer = 0 To 3
Dim tsb As ToolStripButton = mnuTest(i)
tsb.Tag = i
tsb.CheckOnClick = True
MM.DropDownItems.Add(tsb)
If i = 1 Then MM.DropDownItems.Add("-")
AddHandler tsb.Click, AddressOf mnuTest_Click
Next i
End Sub

Private Sub mnuTest_Click(ByVal sender As Object, _
ByVal e As System.EventArgs)
Dim Index As Integer
Index = CType(CType _
(sender, System.Windows.Forms.ToolStripItem).Tag, _
Integer)

Select Case Index
Case 1
'Machwas
End Select
Debug.Print("Index: " & Index, mnuTest(Index).Text)
End Sub

End Class

Viele Gruesse

Peter

Ähnliche fragen