Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    455

    [VB.NET] E' possibile salvare controlli dichiarati con array?

    Ciao a tutti, questa volta avevo solo una semplice domanda, ho creato questo codice per salvare dei settaggi

    codice:
     Public Sub saveProject(ByVal lst As ListView, ByVal cbo As ComboBox, ByVal txtb As TextBox, ByVal lbl As Label, ByVal file As String)
    
    
            On Error GoTo err
    
            Using LF As New IO.StreamWriter(file)
    
                LF.WriteLine("Game name:")
                LF.WriteLine(txtb.Text)
                LF.WriteLine("Dev time:")
                LF.WriteLine(lbl.Text)
    
                For i As Integer = 0 To lst.Items.Count - 1
    
                    LF.WriteLine("Teams:")
                    LF.WriteLine(lst.Items(i).Text)
                    LF.WriteLine(lst.Items(i).SubItems(1).Text)
                    LF.WriteLine(lst.Items(i).SubItems(2).Text)
    
                Next
    
                For i As Integer = 0 To cbo.Items.Count - 1
    
                    LF.WriteLine("ComboSettings:")
                    LF.WriteLine(cbo.Items(i).Text)
    
                Next
    
            End Using
    
    err:    reportdebug.error_name(reportdebug.ListView1, "Game project saved", "Form3")
            reportdebug.savelog(reportdebug.ListView1, "data\log.txt")
    
        End Sub
    mi chiedevo se era possibile salvare piu' controlli con array ad esempio dichiarando sul pulsante per richiamare la funzione:
    Saveproject(Listview1,cbo(1),cbo(2),textbox1,lbl,p ercorsofile) oppure toccherebbe dichiarare una variabile per ogni controllo da salvare?

  2. #2
    usa un case selct che intercetta il tipo oggetto passato tramie ParamArray...una cosa così...

    codice:
    Sub SaveProject(PercorsoFile as string, ParamArray Oggetti As Object())
        Using LF As New IO.Streamwrite(PercorsoFile)
            For Each Oggetto as Object in Oggetti
    
                Select Case Oggetto.Gettype.name
    
                    Case "TextBox"
                        LF.Writeline(Oggetto.Text)
    
                    Case "ListBox"
                        for each Riga as item in Oggetto.Items
                            LF.Writeline(Riga.Value)
                        Next Riga
    
                    case ......
    
                End Select
    
            Next Oggetto
        End Using
    End Sub
    per chiamare questa sub devi specificare per primo parametro PercorsoFile e poi un array di oggetti da salvare...

    Per la lettura del file dovresti prima anche salvare il nome e tipo oggetto, saranno utili alla lettura del file e caricamento sul relativo oggetto...

    ps. Il code l'ho scritto al volo giusto per dare un'idea, ci potrebbero (anzi sicuramente ) essere degli errori di sintassi...
    Michele

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