Guardar contenido de listbox en settings

Iniciado por rigorvzla, 22 Septiembre 2018, 17:00 PM

0 Miembros y 1 Visitante están viendo este tema.

rigorvzla

Hola a todos amigos, hoy tengo un problema que no enceuntro nada claro  para solventarlo, tengo un listbox en el cual agrego datos, me gustaria que esa lista de nombres, pueda guardarla en una settings para poder cargarlos de nuevo al iniciar el programa , pero no se como hacerlo, quizas sea algo sencillo y espero puedan ayudarme.

Eleкtro

#1
No has dado toda la información necesaria. Daré por hecho que los elementos contenidos en la colección de tu ListBox deben ser de un tipo serializable, y que además probablemente sean de tipo String... al ser lo más habitual.

En ese caso, es suficiente con que uses una propiedad de tipo StringCollection como en la siguiente imagen:






  • ¿Cómo hacer para guardar los elementos de tu ListBox?:
    Código (vbnet) [Seleccionar]
    Imports ListBoxExtensions
    Código (vbnet) [Seleccionar]
    My.Settings.ListBoxItems = Me.ListBox1.Items.ToStringCollection()
    Código (vbnet) [Seleccionar]

    Public Module ListBoxExtensions

       ''' <summary>
       ''' Converts the specified a <see cref="ListBox.ObjectCollection"/> to a <see cref="StringCollection"/>.
       ''' </summary>
       '''
       ''' <param name="sender">
       ''' The source <see cref="ListBox.ObjectCollection"/>.
       ''' </param>
       '''
       ''' <returns>
       ''' The resulting <see cref="StringCollection"/>.
       ''' </returns>
       <Extension>
       <EditorBrowsable(EditorBrowsableState.Always)>
       <DebuggerStepThrough>
       Public Function ToStringCollection(ByVal sender As ListBox.ObjectCollection) As StringCollection
           Dim collection As New StringCollection()

           ' Intentionally, Will throw a InvalidCastException if the collection contains non-string types.
           For Each item As String In sender
               collection.Add(item)
           Next item

           Return collection
       End Function

    End Module


  • ¿Cómo hacer para restaurar los elementos de tu ListBox?:
    Código (vbnet) [Seleccionar]
    If (My.Settings.ListBoxItems?.Count <> 0) Then
       ' Me.ListBox1.Items.Clear()

       Me.ListBox1.BeginUpdate()
       For Each item As String In My.Settings.ListBoxItems
           Me.ListBox1.Items.Add(item)
       Next item
       Me.ListBox1.EndUpdate()
    End If


    En C#, sería el mismo procedimiento (adaptando la sintaxis).

    Saludos!








rigorvzla

Como siempre dando en el clavo! Muchas gracias por la explicacion me ayudo y sirvio de manera exitosa.