Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: rigorvzla en 22 Septiembre 2018, 17:00 pm



Título: Guardar contenido de listbox en settings
Publicado por: rigorvzla en 22 Septiembre 2018, 17:00 pm
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.


Título: Re: Guardar contenido de listbox en settings
Publicado por: Eleкtro en 23 Septiembre 2018, 10:30 am
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:

(https://i.imgur.com/hHrv8b3.png)



 
  • ¿Cómo hacer para guardar los elementos de tu ListBox?:
    Código
    1. Imports ListBoxExtensions
    Código
    1. My.Settings.ListBoxItems = Me.ListBox1.Items.ToStringCollection()
    Código
    1. Public Module ListBoxExtensions
    2.  
    3.    ''' <summary>
    4.    ''' Converts the specified a <see cref="ListBox.ObjectCollection"/> to a <see cref="StringCollection"/>.
    5.    ''' </summary>
    6.    '''
    7.    ''' <param name="sender">
    8.    ''' The source <see cref="ListBox.ObjectCollection"/>.
    9.    ''' </param>
    10.    '''
    11.    ''' <returns>
    12.    ''' The resulting <see cref="StringCollection"/>.
    13.    ''' </returns>
    14.    <Extension>
    15.    <EditorBrowsable(EditorBrowsableState.Always)>
    16.    <DebuggerStepThrough>
    17.    Public Function ToStringCollection(ByVal sender As ListBox.ObjectCollection) As StringCollection
    18.        Dim collection As New StringCollection()
    19.  
    20.        ' Intentionally, Will throw a InvalidCastException if the collection contains non-string types.
    21.        For Each item As String In sender
    22.            collection.Add(item)
    23.        Next item
    24.  
    25.        Return collection
    26.    End Function
    27.  
    28. End Module

     
  • ¿Cómo hacer para restaurar los elementos de tu ListBox?:
    Código
    1. If (My.Settings.ListBoxItems?.Count <> 0) Then
    2.    ' Me.ListBox1.Items.Clear()
    3.  
    4.    Me.ListBox1.BeginUpdate()
    5.    For Each item As String In My.Settings.ListBoxItems
    6.        Me.ListBox1.Items.Add(item)
    7.    Next item
    8.    Me.ListBox1.EndUpdate()
    9. End If

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

    Saludos!


Título: Re: Guardar contenido de listbox en settings
Publicado por: rigorvzla en 23 Septiembre 2018, 14:49 pm
Como siempre dando en el clavo! Muchas gracias por la explicacion me ayudo y sirvio de manera exitosa.