Oppure

Loading
09/10/19 7:30
1/2copiatore
Buongiorno a tutti

eccomi qui con il primo problema, creare un sottomenu con gli anni dal 1999 ad oggi, ed è evidente che deve essere creato in runtime in quanto ogni anno deve essere incrementato di un item, questo è quanto ho scritto:

        ' crea il sottomenu anni e carica la lstAnni 
        For x As Integer = 1997 To Year(Now)
            Dim Intercetta As New ToolStripMenuItem
            Select Case x
                Case 1997
                    Intercetta.Text = "Tutti"
                    mnu_SeekAnno.DropDownItems.Add(Intercetta.Text)
                    AddHandler Intercetta.Click, AddressOf Intercetta_Click
                Case 1998
                    Intercetta.Text = "Nessuno"
                    mnu_SeekAnno.DropDownItems.Add(Intercetta.Text)
                    AddHandler Intercetta.Click, AddressOf Intercetta_Click
                    mnu_SeekAnno.DropDownItems.Add("-")
                Case Else
                    'aggiunge sottomenu
                    Intercetta.Text = x
                    mnu_SeekAnno.DropDownItems.Add(Intercetta.Text)
                    AddHandler Intercetta.Click, AddressOf Intercetta_Click
                    'aggiunge nella listbox anni
                    lstAnni.Items.Add(x)
            End Select
        Next

    Private Sub Intercetta_Click(ByVal sender As Object, ByVal e As EventArgs)
        Dim mnu As ToolStripMenuItem
        mnu = DirectCast(sender, ToolStripMenuItem)
        If mnu.Text = "Nessuno" Then
            mnu_SeekAnno.Text = "Anno ..."
        Else
            mnu_SeekAnno.Text = "Anno : " & mnu.Text
        End If
    End Sub



il tutto funziona ( quasi ), il sottomenu è creato e definito l' handler, quello che non va è l'intercettazione del click a un x item del sotto menu creato.
Ho inserito un 'punto d'interruzione' nella procedura Intercetta_click ma lì non ci arrivo.

Dove sto sbagliando?


Ultima modifica effettuata da 1/2copiatore 09/10/19 7:50
aaa
09/10/19 11:04
Goblin
Premessa: Non ho mai usato VB, ma ad una veloce occhiata vedo che tu fai un add di una stringa non di un oggetto, altra cosa, non conoscendo VB non so come si comporta, aggiungi l'evento "onClick" dopo aver aggiunto l'item al submenu.
Io farei così:
  Intercetta.Text = "Nessuno"
  AddHandler Intercetta.Click, AddressOf Intercetta_Click
  mnu_SeekAnno.DropDownItems.Add(Intercetta)
 .....

G.
Ibis redibis non morieris in bello
09/10/19 12:42
1/2copiatore
Postato originariamente da Goblin:

Premessa: Non ho mai usato VB, ma ad una veloce occhiata vedo che tu fai un add di una stringa non di un oggetto, altra cosa, non conoscendo VB non so come si comporta, aggiungi l'evento "onClick" dopo aver aggiunto l'item al submenu.
Io farei così:
  Intercetta.Text = "Nessuno"
  AddHandler Intercetta.Click, AddressOf Intercetta_Click
  mnu_SeekAnno.DropDownItems.Add(Intercetta)
 .....

G.


Ciao goblin

era come dicevi ... aggiungevo la stringa, è bastato togliere quel ".Text" e tutto è andato bene

Grazie
aaa