Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    27

    vb.net SCORRERE LISTA FILE IN LISTBOX MEDIANTE BOTTONI

    Salve,
    Scusa alka hai ragione troppe domande.
    Ecco uno dei mie problemi :
    Ho creato una listbox e una picturebox e due button in un form, all'apertura del form si carica la list con delle foto presenti in memoria (nella directory del programma)

    codice:
     
    Private percorsoImgs As String = Application.StartupPath & "\images"
    poi si visualizza la prima foto della listbox nella picturebox :



    codice:
    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged         
    PictureBox1.ImageLocation = ListBox1.SelectedItem         
    TextBox1.Text = ListBox1.SelectedItem         
    Label3.Text = ListBox1.SelectedItems.Count & "/" & ListBox1.Items.Count     
    End Sub
    a questo punto dovrei usare i due bottoni avanti e indietro per scorrere e visualizzare le foto ma non funziona posto il codice, che ho praticamente ricopiato da un tutorial in rete dove nel video funziona ma a me no :

    codice:
     Private Sub cmdAvanti_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAvanti.Click         
    Dim j As Integer = ListBox1.SelectedIndex         
    For i = 0 To ListBox1.Items.Count - 1             
    If i = j + 1 Then                
     ListBox1.SetSelected(i, True)             
    Else                 
    ListBox1.SetSelected(i, False)           
      End If         
    Next    
     End Sub     
    Private Sub cmdIndietro_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdIndietro.Click         
    Dim j As Integer = ListBox1.SelectedIndex        
     For i = 0 To ListBox1.Items.Count - 1          
       If i = j - 1 Then                 
    ListBox1.SetSelected(i, True)             
    Else                
     ListBox1.SetSelected(i, False)            
     End If         
    Next     
    End Sub
    dove sbaglio? non genera neanche errore

    Grazie per le risposte

  2. #2
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Il ciclo For/Next continua e la condizione "i = j + 1" non è più rispettata, quindi passa all' Else che deseleziona l' elemento.
    O interrompi il ciclo quando "i = j + 1" è rispettato o elimini l' Else.
    Il codice sotto è un mix...quando si arriva all' ultimo elemento riparte dal primo e viceversa:
    codice:
     Private Sub cmdAvanti_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAvanti.Click
            Dim j As Integer = ListBox1.SelectedIndex
            For i = 0 To ListBox1.Items.Count - 1
                If i = j + 1 Then
                    ListBox1.SetSelected(i, True)
                    Exit For
                Else
                    ListBox1.SetSelected(0, True)
                End If
            Next
        End Sub
        Private Sub cmdIndietro_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdIndietro.Click
            Dim j As Integer = ListBox1.SelectedIndex
            For i = 0 To ListBox1.Items.Count - 1
                If i = j - 1 Then
                    ListBox1.SetSelected(i, True)
                    Exit For
                Else
                    ListBox1.SetSelected(ListBox1.Items.Count - 1, True)
                End If
            Next
        End Sub

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    27
    Ciao Vinsent
    grazie per la risposta e per l'aiuto ho capito l'errore e ti ringrazio per il codice ora funziona alla grande. Mitico!

    ora ti chiedo un ulteriore favore, ho inserito una label sopra al listbox in cui mi visualizza il numero totale delle foto presenti ed il numero prograssivo che io seleziono.
    Mi mette il numero totale delle foto, ma quando cambio foto rimane sempre su 1.
    codice:
    Label3.Text = ListBox1.SelectedItems.Count & "/" & ListBox1.Items.Count
    dove sbaglio ho provato a cambiare setselect ad inserire un ciclo ma nulla!!

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Sbagli in questa

    ListBox1.SelectedItems.Count

    Ti sei chiesto cosa sia e se faceva al caso tuo prima di utilizzarla?

    Se cerchi un numero "progressivo" per l'elemento selezionato, quale potrebbe essere (dai un'occhiata al controllo ListBox e alle sue proprietà)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Oltre a quanto scritto da oregon aggiungerei che non hai compreso il codice per i button, nel senso "riga per riga", altrimenti avresti già risolto da solo...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    27
    Non ho capito nelle proprietà dove devo guardare, perdonatemi ma non sono un maestro in visual basic

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.