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

Abrir winforms desde otro winform

Estas en el tema de Abrir winforms desde otro winform en el foro de .NET en Foros del Web. Holas estoy trabajando en Visual Studio 2008 utilizando vb.net. Tengo un winform(inicio.vb) que tiene la opcion isMdi container habilitada, esta tiene un menu con un ...
  #1 (permalink)  
Antiguo 23/11/2009, 10:16
 
Fecha de Ingreso: octubre-2009
Mensajes: 70
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta Abrir winforms desde otro winform

Holas estoy trabajando en Visual Studio 2008 utilizando vb.net.

Tengo un winform(inicio.vb) que tiene la opcion isMdi container habilitada,

esta tiene un menu con un boton con la opcion "Clientes",

al apretar este boton se abre otro Winform(menu_clientes.vb),

menu_clientes.vb tiene un DataGridView, me muestra todos los clientes que ya se encuentran registrados, esto lo hace al abrir menu_clientes.vb

menu_clientes.vb tiene un ToolStrip,

en este ToolStrip tengo un boton(nuevo Cliente) que abre otro

winform(nuevo_cliente.vb), en nuevo_cliente.vb tengo un formulario donde ingreso los datos del nuevo cliente,

apreto el boton guardar de nuevo_cliente.vb, y registra el cliente

Lo que deberia ocurrir, es que al apretar el boton guardar de nuevo_cliente.vb, deberia hacer el registro en la BD(que si lo hace perfectamente) y visualizar (o que se actualice el datagridview con los mismos datos mas los datos nuevos) automaticamente el cliente recien ingresado dentro del datagridview de menu_clientes.vb


El Problema es que esto no pasa, si alguien sabe como hacer esto que me ayude porfavor, de ante mano muchas gracias.

El codigo que utilizo lo pongo en el siguiente mensaje
  #2 (permalink)  
Antiguo 23/11/2009, 10:17
 
Fecha de Ingreso: octubre-2009
Mensajes: 70
Antigüedad: 14 años, 6 meses
Puntos: 0
Pregunta Respuesta: Abrir winforms desde otro winform

Codigo: inicio.vb
Código vb.net:
Ver original
  1. Private Sub NavBarItem1_LinkClicked(ByVal sender As Object, ByVal e As DevExpress.XtraNavBar.NavBarLinkEventArgs) Handles NavBarItem1.LinkClicked
  2.         Dim menu_cli As New menu_clientes
  3.         menu_cli.MdiParent = Me
  4.         menu_cli.Show()
  5. End Sub

Codigo: menu_clientes.vb
Código vb.net:
Ver original
  1. Public Sub menu_clientes_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  2.         Dim conexion As New SqlConnection(cadena)
  3.         Dim sql As String
  4.         Dim MiAdapter As SqlDataAdapter = New SqlDataAdapter("SELECT cod_cli AS Codigo, rut_cli AS Rut, nombre_cli AS Nombre, fijo_cli AS Telefono, movil_cli As Celular, email_cli AS Mail FROM cliente", conexion)
  5.  
  6.          Dim MiDataSet As New DataSet
  7.          MiAdapter.Fill(MiDataSet)
  8.          DataGridView1.DataSource = MiDataSet.Tables(0)
  9. End Sub
  10.  
  11. Private Sub nuevo_cliente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nuevo_cliente.Click
  12.         Dim NuevoCliente As New nuevo_cliente
  13.         NuevoCliente.ShowDialog()
  14. End Sub

Codigo: nuevo_cliente.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.        
  3.             ingresar_cliente(txRut.Text, txNombre.Text, txTelFijo.Text, txTelMovil.Text, txDomicilio.Text, txPerContacto.Text, txGiro.Text, txMail.Text, txFecha.Text, txEstado.Text, txCiudad.SelectedValue)
  4.  
  5.            'AQUI ESTO ES LO QUE HAGO PARA QUE SE VUELVA A CARGAR EL 'DATAGRIDVIEW DE menu_clientes.vb
  6.            menu_clientes.menu_clientes_Load(sender, e)
  7.            
  8. End Sub
  9.  
  10. Private Sub ingresar_cliente(ByVal rut As String, ByVal nombre As String, ByVal fijo As String, ByVal movil As String, ByVal domicilio As String, ByVal contacto As String, ByVal giro As String, ByVal email As String, ByVal fecha As String, ByVal estado As String, ByVal idCiudad As String)
  11.         Dim conexion As New SqlConnection(cadena)
  12.         Dim comando As New SqlCommand("INSERT INTO cliente(rut_cli, nombre_cli, fijo_cli, movil_cli, domicilio_cli, contacto_cli, giro_cli, email_cli, fecha, estado_cli, id_ciudad) values(@rut, @nombre, @fijo, @movil, @domicilio, @contacto, @giro, @email, @fecha, @estado, @idCiudad)", conexion)
  13.  
  14.         comando.Parameters.AddWithValue("@rut", rut)
  15.         comando.Parameters.AddWithValue("@nombre", nombre)
  16.         comando.Parameters.AddWithValue("@fijo", fijo)
  17.         comando.Parameters.AddWithValue("@movil", movil)
  18.         comando.Parameters.AddWithValue("@domicilio", domicilio)
  19.         comando.Parameters.AddWithValue("@contacto", contacto)
  20.         comando.Parameters.AddWithValue("@giro", giro)
  21.         comando.Parameters.AddWithValue("@email", email)
  22.         comando.Parameters.AddWithValue("@fecha", fecha)
  23.         comando.Parameters.AddWithValue("@estado", estado)
  24.         comando.Parameters.AddWithValue("@idCiudad", idCiudad)
  25.  
  26.         conexion.Open()
  27.         comando.ExecuteNonQuery()
  28.         conexion.Close()
  29.     End Sub
  #3 (permalink)  
Antiguo 23/11/2009, 11:01
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Abrir winforms desde otro winform

Prueba creando un método que contendrá el código para cargar la grilla.
Código vb.net:
Ver original
  1. Public Function ListarDatos() As DataTable
  2.         Dim conexion As New SqlConnection(cadena)
  3.         Dim sql As String
  4.         Dim MiAdapter As SqlDataAdapter = New SqlDataAdapter("SELECT cod_cli AS Codigo, rut_cli AS Rut, nombre_cli AS Nombre, fijo_cli AS Telefono, movil_cli As Celular, email_cli AS Mail FROM cliente", conexion)
  5.  
  6.          Dim MiDataSet As New DataSet
  7.          MiAdapter.Fill(MiDataSet)
  8.          return MiDataSet.Tables(0)
  9. End Function

En el load de menu_clientes:
Código vb.net:
Ver original
  1. DataGridView1.DataSource = ListarDatos()

Al mostrar el formulario nuevo_cliente
Código vb.net:
Ver original
  1. Private Sub nuevo_cliente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nuevo_cliente.Click
  2.         Dim NuevoCliente As New nuevo_cliente
  3.         NuevoCliente.ShowDialog()
  4.         DataGridView1.DataSource = ListarDatos()
  5. End Sub

Luego de que se guarde el formulario se refrescará la grilla.
Cualquier duda me avisas
__________________
Eduardo Peredo
Wigoin
  #4 (permalink)  
Antiguo 23/11/2009, 21:53
 
Fecha de Ingreso: octubre-2009
Mensajes: 70
Antigüedad: 14 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Abrir winforms desde otro winform

Muchas gracias eperedo. Me funciono de las mil maravillas
Tu siempre das la respuesta precisa, concreta y correcta
Muchas gracias
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




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