Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    37

    [vb 2008 express] aiuto con menustrip

    premetto che è dapo poco che mi sn avvicinato al visual basic e ai linguaggi orientati ad oggetti...
    vorrei creare un menustrip fatto cosi:
    impostazioni
    |
    V
    Nuovo
    Carica-->elenco file
    elimina-->elenco file
    esci...

    i file di elenco file sono gli stessi e sono i file presenti in una cartella...
    io sn riusco a riprodurre questa struttura ma il mio problema e che non so come procedere per far partire una serie di istruzioni quando clicco su uno degli item presenti in elenco file...
    il codice che ho scritto è:

    For Each foundfile As String In My.Computer.FileSystem.GetFiles("\prova",_ FileIO.SearchOption.SearchTopLevelOnly, "*.tra")
    st = (My.Computer.FileSystem.GetName(foundfile))
    Dim newgioc As New ToolStripMenuItem
    newgioc.Text = st
    AddHandler newgioc.Click, AddressOf newgioc_Click
    CaricaGiocatoreToolStripMenuItem.DropDownItems.Add (newgioc)
    Next

    avevo pensato di creare un array da assegnare ad ToolStripMenuItem ma evidentemente nn si fa cosi...
    come posso fare?
    grazie in anticipo

  2. #2
    mai sentito parlare di programmazione ad eventi?? :rollo:

    ogni riga del tuo menu a degli eventi associati tra cui anche l'evento Click, cioè l'azione che fai tu quando lo selezioni, dentro la procedura di click puoi inserirci l'azione che deve compiere... ti consiglio di dare un'occhiata all'MSDN...


    ciao ciao
    I database... la mia passione + o -

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    37
    io ho fatto gia come dicevi tu inserendo la sub dell'evento...

    Private Sub newgioc_Click(ByVal sender As Object, ByVal e As EventArgs)

    End Sub

    ma poi come faccio a identificare la riga che ho aggiunto in elenco file?

  4. #4
    devi crearti dei riferimenti... nella lista file del menu cosa ci scrivi? il nome del file per intero?

    allora potresti andare a leggere direttamente la proprietà Text del menu o comunque in base a quella scegliere che fare...
    I database... la mia passione + o -

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    37
    con
    Dim newgioc As New ToolStripMenuItem
    newgioc.Text = st (st nome con estesione)
    in un ciclo for ogni file trovato viene aggiunto al meno in carica
    ma poi come faccio a specificare l'evento di quella determinata riga?
    in poche parole cosa devo utilizzare per individuare il testo della riga su cui clicco?

  6. #6
    Originariamente inviato da darklook
    con
    Dim newgioc As New ToolStripMenuItem
    newgioc.Text = st (st nome con estesione)
    in un ciclo for ogni file trovato viene aggiunto al meno in carica
    ma poi come faccio a specificare l'evento di quella determinata riga?
    in poche parole cosa devo utilizzare per individuare il testo della riga su cui clicco?
    perchè devi ciclare il menu??

    nomedelmenu.text.... cos'altro??
    I database... la mia passione + o -

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    37
    forse nn ci stiamo capendo..
    vabbe semplifico il problema cosi...

    Impostazioni
    |
    V
    Nuovo
    Carica----> elenco di file di una cartella
    elimina---->elenco di file di una cartella
    esci

    sono riusco a creare questa struttura utilizzando l'interfaccia grafica del programma e sono anche riuscito a programmare l'inserimento dell'elenco dei file...
    questo è parte del codice

    For Each foundfile As String In My.Computer.FileSystem.GetFiles("\prova", FileIO.SearchOption.SearchTopLevelOnly, "*.tra")

    st = (My.Computer.FileSystem.GetName(foundfile))

    Dim gioc As New ToolStripMenuItem
    newgioc.Text = st
    AddHandler gioc.Click, AddressOf gioc_Click
    CaricaMenuItem.DropDownItems.Add(gioc)


    Next

    Private Sub gioc_Click(ByVal sender As Object, ByVal e As EventArgs)

    End Sub

    ipotizzando che nel sottomenu carica ci siano scritte solo 2 righe: file1.tra e file2.tra (i file trovati nella cartella prova), senza complicare molto il problema vi chiedo che codice devo implementare nell'evento gioc_click per far si che se clicco sulla prima riga del sottomenu carica (nel mio esempio file1.tra) esegue l'istruzione msgbox("file1.tra",0) mentre se clicco sulla seconda esegue l'istruzione msgbox("file2.tra",0)

  8. #8
    Originariamente inviato da darklook
    forse nn ci stiamo capendo..
    vabbe semplifico il problema cosi...

    Impostazioni
    |
    V
    Nuovo
    Carica----> elenco di file di una cartella
    elimina---->elenco di file di una cartella
    esci

    sono riusco a creare questa struttura utilizzando l'interfaccia grafica del programma e sono anche riuscito a programmare l'inserimento dell'elenco dei file...
    questo è parte del codice

    For Each foundfile As String In My.Computer.FileSystem.GetFiles("\prova", FileIO.SearchOption.SearchTopLevelOnly, "*.tra")

    st = (My.Computer.FileSystem.GetName(foundfile))

    Dim gioc As New ToolStripMenuItem
    newgioc.Text = st
    AddHandler gioc.Click, AddressOf gioc_Click
    CaricaMenuItem.DropDownItems.Add(gioc)


    Next

    Private Sub gioc_Click(ByVal sender As Object, ByVal e As EventArgs)

    End Sub

    ipotizzando che nel sottomenu carica ci siano scritte solo 2 righe: file1.tra e file2.tra (i file trovati nella cartella prova), senza complicare molto il problema vi chiedo che codice devo implementare nell'evento gioc_click per far si che se clicco sulla prima riga del sottomenu carica (nel mio esempio file1.tra) esegue l'istruzione msgbox("file1.tra",0) mentre se clicco sulla seconda esegue l'istruzione msgbox("file2.tra",0)
    codice:
    Private Sub gioc_Click(ByVal sender As Object, ByVal e As EventArgs)
        messagebox.show(sender.text)
    End Sub
    Meglio se usi messagebox anzichè msgbox...
    I database... la mia passione + o -

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    37
    grazie mille dell'aiuto, è proprio quello che cercavo

  10. #10
    Originariamente inviato da darklook
    grazie mille dell'aiuto, è proprio quello che cercavo
    Visto che conosci a priori il tipo di appartenenza dell'oggetto ..... meglio se fai
    codice:
    Private Sub gioc_Click(ByVal sender As Object, ByVal e As EventArgs)
        messagebox.show(directcast(sender,toolstripmenuitem).text)
    End Sub
    Option Strict On non ti permeterebbe di fare altrimenti.
    Option strict Off permette associazione tardiva ..... causa di molte "strane" eccezioni sollevate a run-time.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.