Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di danjwo
    Registrato dal
    Aug 2007
    Messaggi
    43

    [Visual Studio 2005]Problema Array ListBox

    Salve, io ho un problema legato ad un "array" di listbox

    Io devo creare un programma che dato in ingresso il numero delle serate
    mi crei tante listbox quante sono le serate
    ed in base al n° di serate poi possa aggiungere in ognuna un certo numero di cantanti
    Con una sola Serata riesco a gestirlo. Dovendo utilizzare più serate non so come implementare l'array..

    Allego il codice finora creato:

    codice:
    Dim nser As Integer
    Dim lstser(nser) As ListBox
    Dim l As Integer
    Dim t As Integer
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.WindowState = FormWindowState.Maximized
    l = 300
    t = 100
    nser = InputBox("Quante Serate Si Deve Organizzare?", "N° Serate")
    popola()
    creaz(nser)
    End Sub
    
    Sub creaz(ByVal nser)
    Dim i As Integer
    Dim titlst(nser) As Label
    For i = 0 To nser
    lstser(i) = New ListBox
    titlst(i) = New Label
    Me.Controls.Add(lstser(i))
    Me.Controls.Add(titlst(i))
    'istruzioni di posizionamento e dimensione (Left,Top e Size)
    Next i
    End Sub
    
    Private Sub popola()
    'Popolamento della lista originale dei cantanti presi da un database
    End Sub
    
    Private Sub lstsorg_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lstsorg.MouseDoubleClick
    lstser(0).Items.Add(lstsorg.SelectedItem)
    ' Indice 0 messo puramente a caso nel caso finale vorrei far decidere a random in quale serata collocarlo
    End Sub
    GRAZIE
    Sicut Nox Silentes

  2. #2
    Io avrei una soluzione pratica, ossia quella di utilizzare un TabControl per contenere tutte le liste che vuoi, senza andare fuori di spazio oppure incasinare il layout. Prova questa procedura per aggiungere le listbox:
    codice:
    Sub creaz(ByVal Nser As Int16)
         Dim LBox As ListBox
         Dim TPage As TabPage
    
         tabLists.TabPages.Clear()
    
         For I As Int16 = 0 To Nser - 1
             LBox = New ListBox()
             TPage = New TabPage
    
             LBox.Name = "lst" & I
             TPage.Name = "tp" & I
    
             TPage.Text = "Serata " & (I + 1)
    
             LBox.Dock = DockStyle.Fill
             TPage.Controls.Add(LBox)
    
             tabLists.TabPages.Add(TPage)
        Next
    End Sub
    Successivamente, puoi ottenere le listbox tramite un indice con questa funzione:
    codice:
    tabLists.Pages(Indice).Controls(0)

  3. #3
    Utente di HTML.it L'avatar di danjwo
    Registrato dal
    Aug 2007
    Messaggi
    43
    Ti Ringrazio per la Risposta..
    Effettivamente utilizzando un TabControl viene più Preciso e semplice il Layout.
    Avevo utilizzato le ListBox per averle sempre tutte sott'occhio

    L'unica cosa che non riesco proprio a fare è la gestione della pagina

    Per la selezione ho provato sia con il metodo FOCUS() che con il metodo SELECT()
    ma mi rimane "inchiodato" sulla prima scheda.

    per l'aggiunta di elementi alla ListBox ho provato ad utilizzare il tabLists.Pages(Indice).Controls(0) ma non avevo la proprietà items non riesco ad aggiungere nulla
    e se uso lbox.items.add me lo aggiunge solo sull'ultima scheda..

    Scusa per l'ignoranza da Neofilo (ed auto didatta) e grazie ancora
    Sicut Nox Silentes

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.