Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: creiko en 11 Octubre 2016, 18:54 pm



Título: Pasar información de un combobox a un listbox
Publicado por: creiko en 11 Octubre 2016, 18:54 pm
Disculpen una pregunta

tengo 3 datos en un combobox
1
2
3
y necesito que al darle click en un un botón agregar se me abra un listbox con los mismos datos el combobox
1
2
3
y agregarle mas datos

el combobox lo tengo en formulario1 y el listbox lo tengo en un formulario 2

Código
  1.  
  2. ListBox1.Items.Add(TextBox1.Text)
  3. Form1.ComboBox1.Items.Add(TextBox1.Text)
  4. TextBox1.Text = ""
  5.  
  6.  

la parte de agregar mas datos desde listbox al combobox ya lo tengo, pero no he podido. es pasar la información del combobox al listbox.
si alguien me explica esa parte como se la hace le agradecería


Título: Re: Pasar información de un combobox a un listbox
Publicado por: Eleкtro en 11 Octubre 2016, 19:34 pm
Hola.

Lo primero de todo, las preguntas sobre Visual Basic.NET van en el foro de .NET, no en Visua Basic 6.0

Según la descripción que has dado del problema, y ya que estás agregando el valor de "TextBox1.Text" tanto al ComboBox como al ListBox, deduzco que en ambos controles pretendes mostrar lo mismo, entonces solo sería necesario agregar el nuevo valor a una de las dos colecciones de elementos, por ejemplo:

Código
  1. Private Sub AgregarDatos()
  2.    ComboBox1.Items.Add(TextBox1.Text)
  3.  
  4.    ListBox1.DataSource = Nothing
  5.    ListBox1.DataSource = ComboBox1.Items
  6. End Sub

Con eso tienes suficiente, si quieres perfeccionarlo entonces declara un BindingSource.

Saludos!


Título: Re: Pasar información de un combobox a un listbox
Publicado por: creiko en 11 Octubre 2016, 21:03 pm
hice lo que dices y funciona bien
pero hay un problema que no deja modificar la listbox
el combobox lo tengo en formulario1 y el listbox lo tengo en un formulario 2


Título: Re: Pasar información de un combobox a un listbox
Publicado por: okik en 12 Octubre 2016, 03:51 am
hice lo que dices y funciona bien
pero hay un problema que no deja modificar la listbox
el combobox lo tengo en formulario1 y el listbox lo tengo en un formulario 2

Según el Microsoft si usas datasource no puedes eliminar ni añadir ítems al Listbox mediante ListBox.ObjectCollection.
ListBox.Items (Propiedad) (https://msdn.microsoft.com/es-es/library/system.windows.forms.listbox.items(v=vs.110).aspx)

Citar
You can also manipulate the items of a ListBox by using the DataSource property.If you use the DataSource property to add items to a ListBox,
 you can view the items in the ListBox using the Items property but you cannot add or remove items from the list using the methods of the
 ListBox.ObjectCollection
.


No te compliques y usa For Each  :laugh:


En el Load del Form2  lo llenas con el contenido del combobox.

Código
  1.     Private Sub Form2_Load(sender As Object, e As EventArgs) Handles Me.Load
  2.        ListBox1.Items.Clear()
  3.        For Each Items As String In Form1.ComboBox1.Items
  4.            ListBox1.Items.Add(Items)
  5.        Next
  6.    End Sub    


Cuando cierres el form en el evento closing actualizas el combobox  con los cambios que has hecho en el listbox

Código
  1.  Private Sub Form2_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
  2.        Form1.ComboBox1.Items.Clear()
  3.        For Each Items As String In ListBox1.Items
  4.            Form1.ComboBox1.Items.Add(Items)
  5.        Next
  6.    End Sub  

  

EJEMPLO:

Código
  1. Public Class Form1
  2.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  3.        ComboBox1.Items.AddRange({"Hoy", "Es", "Miércoles"})
  4.    End Sub
  5.  
  6.    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  7.        Form2.ShowDialog()
  8.    End Sub
  9. End Class
  10.  
  11. Public NotInheritable Class Form2 : Inherits Form
  12.    Friend Shared WithEvents Button1 As New Button 'Crea un botón con eventos
  13.    Friend Shared WithEvents ListBox1 As New ListBox 'Crea un botón con eventos
  14.    Sub New()
  15.        Button1.Location = New Point(10, 120)
  16.        ListBox1.Location = New Point(10, 10)
  17.        Me.Controls.AddRange({Button1, ListBox1})
  18.    End Sub
  19.  
  20.    Private Sub Form2_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
  21.        Form1.ComboBox1.Items.Clear()
  22.        For Each Items As String In ListBox1.Items
  23.            Form1.ComboBox1.Items.Add(Items)
  24.        Next
  25.    End Sub
  26.  
  27.    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles Me.Load
  28.        ListBox1.Items.Clear()
  29.        For Each Items As String In Form1.ComboBox1.Items
  30.            ListBox1.Items.Add(Items)
  31.        Next
  32.    End Sub
  33.  
  34.    Private Shared Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  35.        ListBox1.Items.Add("y a mi que")
  36.    End Sub
  37. End Class

y si quieres puedes usar datasoruce en llugar de For Each  en el Closing del Form2 para el combobox.
Código
  1.    Private Sub Form2_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
  2.        Form1.ComboBox1.DataSource = Nothing
  3.        Form1.ComboBox1.DataSource = ListBox1.Items
  4.    End Sub




Título: Re: Pasar información de un combobox a un listbox
Publicado por: creiko en 12 Octubre 2016, 06:49 am
Código
  1.  
  2. Private Sub Form2_Load(sender As Object, e As EventArgs) Handles Me.Load
  3.        ListBox1.Items.Clear()
  4.        For Each Items As String In Form1.ComboBox1.Items
  5.            ListBox1.Items.Add(Items)
  6.        Next
  7.    End Sub    
  8.  
  9.  

con esta código me salvaste la vida
era justo lo que necesitaba
Gracias amigo