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 originalPublic 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)
Dim item As ListViewItem
item = New ListViewItem(id)
item.SubItems.Add(cod)
item.SubItems.Add(nombre)
item.SubItems.Add(cantidad)
item.SubItems.Add(precio)
item.SubItems.Add(total)
item.SubItems.Add(obs)
ListView1.Items.Add(item)
modificar.Show()
eliminar.Show()
LblNeto.Text = CalculaNeto()
LblNeto.Show()
LblIva.Text = CalculaIva()
LblIva.Show()
LblTotal.Text = CalculaTotal()
LblTotal.Show()
End Sub
Codigo: nueva_linea_producto.vb
Código vb.net:
Ver originalPrivate Sub guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles guardar.Click
If String.IsNullOrEmpty(txId.Text) Then
ep.SetError(txId, "Ingrese un Producto")
Exit Sub
End If
If String.IsNullOrEmpty(txPrecio.Text) Then
ep.SetError(txPrecio, "Ingrese un Precio")
'Exit Sub
If String.IsNullOrEmpty(txCantidad.Text) Then
ep.SetError(txCantidad, "Ingrese una Cantidad")
Exit Sub
End If
End If
ep.Clear()
If String.IsNullOrEmpty(txCantidad.Text) Then
ep.SetError(txCantidad, "Ingrese una Cantidad")
'Exit Sub
If String.IsNullOrEmpty(txPrecio.Text) Then
ep.SetError(txPrecio, "Ingrese un Precio")
Exit Sub
End If
End If
Dim fila As Integer
For fila = 0 To My.Forms.nueva_factura.ListView1.Items.Count - 1
Dim codProd As String = My.Forms.nueva_factura.ListView1.Items(fila).SubItems(0).Text
If txId.Text = codProd Then
MessageBox.Show("Este Producto, Ya se Encuentra en la Linea de Detalle", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Exit Sub
Next
ep.Clear()
'AQUI ANTES LLAMABA A LA FUNCION AgregarItem(...)
Call LimpiarTextBox(Me)
End If
End Sub