Pasar información de un combobox a un listbox

Iniciado por creiko, 11 Octubre 2016, 18:54 PM

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

creiko

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 (vb) [Seleccionar]


ListBox1.Items.Add(TextBox1.Text)
Form1.ComboBox1.Items.Add(TextBox1.Text)
TextBox1.Text = ""



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

Eleкtro

#1
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 (vbnet) [Seleccionar]
Private Sub AgregarDatos()
   ComboBox1.Items.Add(TextBox1.Text)

   ListBox1.DataSource = Nothing
   ListBox1.DataSource = ComboBox1.Items
End Sub


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

Saludos!








creiko

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

okik

#3
Cita de: 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

Según el Microsoft si usas datasource no puedes eliminar ni añadir ítems al Listbox mediante ListBox.ObjectCollection.
ListBox.Items (Propiedad)

CitarYou 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 (vbnet) [Seleccionar]
    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles Me.Load
       ListBox1.Items.Clear()
       For Each Items As String In Form1.ComboBox1.Items
           ListBox1.Items.Add(Items)
       Next
   End Sub    



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

Código (vbnet) [Seleccionar]
 Private Sub Form2_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
       Form1.ComboBox1.Items.Clear()
       For Each Items As String In ListBox1.Items
           Form1.ComboBox1.Items.Add(Items)
       Next
   End Sub  


 

EJEMPLO:

Código (vbnet) [Seleccionar]
Public Class Form1
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       ComboBox1.Items.AddRange({"Hoy", "Es", "Miércoles"})
   End Sub

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Form2.ShowDialog()
   End Sub
End Class

Public NotInheritable Class Form2 : Inherits Form
   Friend Shared WithEvents Button1 As New Button 'Crea un botón con eventos
   Friend Shared WithEvents ListBox1 As New ListBox 'Crea un botón con eventos
   Sub New()
       Button1.Location = New Point(10, 120)
       ListBox1.Location = New Point(10, 10)
       Me.Controls.AddRange({Button1, ListBox1})
   End Sub

   Private Sub Form2_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
       Form1.ComboBox1.Items.Clear()
       For Each Items As String In ListBox1.Items
           Form1.ComboBox1.Items.Add(Items)
       Next
   End Sub

   Private Sub Form2_Load(sender As Object, e As EventArgs) Handles Me.Load
       ListBox1.Items.Clear()
       For Each Items As String In Form1.ComboBox1.Items
           ListBox1.Items.Add(Items)
       Next
   End Sub

   Private Shared Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       ListBox1.Items.Add("y a mi que")
   End Sub
End Class


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




creiko

Código (vbnet) [Seleccionar]


Private Sub Form2_Load(sender As Object, e As EventArgs) Handles Me.Load
        ListBox1.Items.Clear()
        For Each Items As String In Form1.ComboBox1.Items
            ListBox1.Items.Add(Items)
        Next
    End Sub   



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