Foros del Web » Programación para mayores de 30 ;) » .NET »

Cargar ListView desde otro Winform

Estas en el tema de Cargar ListView desde otro Winform en el foro de .NET en Foros del Web. Holas Espero me puedan ayudar con esto, estoy trabajando en Visual Studio 2008 y utilizando vb.net Tengo un winform(nueva_factura.vb) en ella se encuentran los datos ...
  #1 (permalink)  
Antiguo 25/11/2009, 08:48
 
Fecha de Ingreso: octubre-2009
Mensajes: 70
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta Cargar ListView desde otro Winform

Holas Espero me puedan ayudar con esto, estoy trabajando en Visual Studio 2008 y utilizando vb.net

Tengo un winform(nueva_factura.vb) en ella se encuentran los datos del cliente, y ademas un ListView que contendra los productos con sus respectivo precio y cantidad.
Para agregar una nueva linea de producto presiono el boton "Nueva Linea" y se abre otro winform(nueva_linea_producto.vb) este tiene un boton para agregar un producto a traves de otro winform, una vez seleccionado se cargaran los datos del producto en nueva_linea_producto.vb y luego ingreso la cantidad y el precio asociado al producto. Y ademas el nueva_linea_producto.vb tiene un boton guardar.

La idea es que al apretar se ingrese automaticamente el producto con sus datos respectivos al Listview. pero que nueva_linea_producto.vb no se cierre inmediatamente, sino que permita ingresar otros productos.

Por lo tanto para este caso no me funciona lo que me mencionas, por que al intentar llamar a AgregarItem(...) despues del showdialog() y que esto funcione, tendria que cerrar nueva_linea_producto.vb al apretar el boton agregar.

Espero me puedan ayudar con esto, Muchas Gracias.

Codigo: nueva_factura.vb
Código vb.net:
Ver original
  1. Public Sub AgregarItem(ByVal id As String, ByVal cod As String, ByVal nombre As String, ByVal cantidad As String, ByVal precio As String, ByVal total As String, ByVal obs As String)
  2.         Dim item As ListViewItem
  3.         item = New ListViewItem(id)
  4.         item.SubItems.Add(cod)
  5.         item.SubItems.Add(nombre)
  6.         item.SubItems.Add(cantidad)
  7.         item.SubItems.Add(precio)
  8.         item.SubItems.Add(total)
  9.         item.SubItems.Add(obs)
  10.         ListView1.Items.Add(item)
  11.  
  12.         modificar.Show()
  13.         eliminar.Show()
  14.  
  15.         LblNeto.Text = CalculaNeto()
  16.         LblNeto.Show()
  17.  
  18.         LblIva.Text = CalculaIva()
  19.         LblIva.Show()
  20.  
  21.         LblTotal.Text = CalculaTotal()
  22.         LblTotal.Show()
  23.        
  24.     End Sub

Codigo: nueva_linea_producto.vb
Código vb.net:
Ver original
  1. Private Sub guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles guardar.Click
  2.         If String.IsNullOrEmpty(txId.Text) Then
  3.             ep.SetError(txId, "Ingrese un Producto")
  4.             Exit Sub
  5.         End If
  6.  
  7.         If String.IsNullOrEmpty(txPrecio.Text) Then
  8.             ep.SetError(txPrecio, "Ingrese un Precio")
  9.             'Exit Sub
  10.             If String.IsNullOrEmpty(txCantidad.Text) Then
  11.                 ep.SetError(txCantidad, "Ingrese una Cantidad")
  12.                 Exit Sub
  13.             End If
  14.         End If
  15.         ep.Clear()
  16.         If String.IsNullOrEmpty(txCantidad.Text) Then
  17.             ep.SetError(txCantidad, "Ingrese una Cantidad")
  18.             'Exit Sub
  19.             If String.IsNullOrEmpty(txPrecio.Text) Then
  20.                 ep.SetError(txPrecio, "Ingrese un Precio")
  21.                 Exit Sub
  22.             End If
  23.         End If
  24.  
  25.         Dim fila As Integer      
  26.         For fila = 0 To My.Forms.nueva_factura.ListView1.Items.Count - 1
  27.                 Dim codProd As String = My.Forms.nueva_factura.ListView1.Items(fila).SubItems(0).Text
  28.                 If txId.Text = codProd Then
  29.                     MessageBox.Show("Este Producto, Ya se Encuentra en la Linea de Detalle", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
  30.                     Exit Sub
  31.             Next
  32.             ep.Clear()
  33.  
  34.             'AQUI ANTES LLAMABA A LA FUNCION AgregarItem(...)
  35.  
  36.             Call LimpiarTextBox(Me)
  37.         End If
  38.     End Sub
  #2 (permalink)  
Antiguo 25/11/2009, 11:34
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Cargar ListView desde otro Winform

En este caso si deberías solucionarlo de la forma como lo hacías antes usando la superclase My.
Te dejo este código para que te des una idea.

__________________
Eduardo Peredo
Wigoin
  #3 (permalink)  
Antiguo 25/11/2009, 17:15
 
Fecha de Ingreso: octubre-2009
Mensajes: 70
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta Cargar ListView desde otro Winform

Hola, no me funciono de la manera que me comentas en el proyecto que subiste. Osea el proyecto que subiste al compilarlo funciona bien (como corresponde), el tema es que solo hay 2 forms implicados, y en mi caso hay 3. Por ejemplo le agregue otro form a tu proyecto (form2.vb) y tiene un boton que llama al form form1.vb que contiene el Listview y un boton que llama a consulta_cliente.vb al apretar el boton de consulta_cliente.vb agrega automaticamente un nuevo item al Listview del form1.vb. Pero al hacer esto de esta manera no funciona para que agrege el nuevo item al Listview.
No se si me explique bien jejeje

Mi caso es similar:
Tengo el winform menu_facturas.vb este tiene el boton "Nueva Factura" al apretar abre el winform nueva_factura.vb en este tengo el Listview. Ademas nueva_factura.vb tiene un boton "Nueva Linea Producto" que abre un winform nueva_linea_producto.vb desde este winform agrego el producto al Listview de nueva factura. Y bueno de la manera que me decias no me funciona (En este caso).

Espero me puedas ayudar con esto Muchas gracias.
  #4 (permalink)  
Antiguo 27/11/2009, 07:26
 
Fecha de Ingreso: octubre-2009
Mensajes: 70
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta Cargar ListView desde otro Winform

Que alguien me ayude Porfavor.
  #5 (permalink)  
Antiguo 28/11/2009, 11:02
 
Fecha de Ingreso: octubre-2009
Mensajes: 70
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta Respuesta: Cargar ListView desde otro Winform

Si alguien tiene una idea que me pueda cooperar para solucionar esta duda porfavor que me me ayude. Muchas Gracias
  #6 (permalink)  
Antiguo 30/11/2009, 08:07
 
Fecha de Ingreso: octubre-2009
Mensajes: 70
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Cargar ListView desde otro Winform

Ayuda porfavor!
Muchas Gracias
  #7 (permalink)  
Antiguo 30/11/2009, 13:15
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Cargar ListView desde otro Winform

Hola, bueno lo hice con 2 formularios, pero la idea es la misma con 3, 10 o 1000.
A menos que no te haya entendido bien lo que deseas, mira este ejemplo con 3 formularios, a ver si te da una idea.

http://rapidshare.com/files/31441304...forms.zip.html

Saludos
__________________
Eduardo Peredo
Wigoin
  #8 (permalink)  
Antiguo 30/11/2009, 20:03
 
Fecha de Ingreso: octubre-2009
Mensajes: 70
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta Cargar ListView desde otro Winform

Hola eperedo, primero que todo gracias por responder y darte el tiempo.
Mira sabes compile el archivo que subiste el ultimo y me funciono correctamente como quiero. El tema es que al hacerlo de la misma manera en mi proyecto no me funciono, la verdad nose que pasa.

y entonces cree un proyecto nuevo para hacer los mismo que tu y de la misma manera, solo implementando esto para que cargara el listview, y tampoco me funciono
Yo no se si el rpoblemasera que dond yo estoy trabajando en visual studio 2008 o por que instale el devExpress o tal vez no tengo activada o desabilitada alguna propiedad del listview o del los winforms, nose que pasa la verdad ya me tiene hasta la coronilla esto llevo mas de una semana con el mismo problema, disculpa que te cuente esto pero ya me esta superando este problema.

Mira subi el ultimo proyecto del que te hablaba, si puedes revisalo y dime en que me equivoco, porfavor
Muchas Gracias por la ayuda
http://www.megaupload.com/?d=8P0UQ5M0
  #9 (permalink)  
Antiguo 02/12/2009, 08:11
 
Fecha de Ingreso: octubre-2009
Mensajes: 70
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta Cargar ListView desde otro Winform

Mejor te dejo el codigo aqui mismo para que lo veas.

form1
Código vb.net:
Ver original
  1. Public Class Form1
  2.     Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click
  3.         Dim f2 As New Form2()
  4.         f2.ShowDialog()
  5.     End Sub
  6. End Class

form2
Código vb.net:
Ver original
  1. Public Class Form2
  2.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  3.         Dim f3 As New Form3()
  4.         f3.ShowDialog()
  5.     End Sub
  6. End Class

form3
Código vb.net:
Ver original
  1. Public Class Form3
  2.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  3.         Dim item As ListViewItem
  4.         item = New ListViewItem(txtrut.Text)
  5.         item.SubItems.Add(txtnombre.Text)
  6.         item.SubItems.Add(txtapellido.Text)
  7.  
  8.         My.Forms.Form2.ListView1.Items.Add(item)
  9.       End Sub
  10. End Class

Asi estoy intentando cargar el Listview del form2, pero no pasa nada, nose si talvez sera que me falta alguna propiedad del listview(ya esta con vista "details") o algo que me falta, la verdad nose que pueda ser.

Espero me ayudes, ya se me esta acabando la paciencia con esto.
Muchas gracias
  #10 (permalink)  
Antiguo 02/12/2009, 08:35
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Cargar ListView desde otro Winform

Ahhh en el 2do formulario está el listview... te había entendido mal entonces XD
Al inicio estás instanciando el formulario donde está el listview por eso no se visualizan los nuevos elementos al usar la clase My

Para solucionarlo simplemente cambia la primera llamada de formulario:
Código vb.net:
Ver original
  1. Public Class Form1
  2.     Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click
  3. 'Antes
  4. '        Dim f2 As New Form2()
  5. '        f2.ShowDialog()
  6. 'AHORA
  7. My.Forms.f2.ShowDialog()
  8.     End Sub
  9. End Class
Lo demás sigue igual. Sorry que no comprendía en que formulario estaba el listview, con esto debería trabajar como tu deseas. Cualquier duda no desesperes, mayor será la satisfacción cuando termines tu sistema.
__________________
Eduardo Peredo
Wigoin
  #11 (permalink)  
Antiguo 02/12/2009, 15:21
 
Fecha de Ingreso: octubre-2009
Mensajes: 70
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Cargar ListView desde otro Winform

Excelente!.
Muchas Gracias Eperedo, de verdad muchas gracias.
Te ganaste todos mis respetos.
Gracias por la ayuda y las palabras de aliento
  #12 (permalink)  
Antiguo 02/12/2009, 16:04
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Cargar ListView desde otro Winform

No te preocupes, todos pasamos dolores de cabeza con algún código...

Saludos.
__________________
Eduardo Peredo
Wigoin
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 05:44.