Visual Basic.NET - ShowDialog() Uso de Formulario

 
Vista:
Imágen de perfil de Anibal

ShowDialog() Uso de Formulario

Publicado por Anibal (21 intervenciones) el 22/09/2021 03:59:34
Saludos Cordiales, uso dos formularios para el registro de proveedores, modo ejercicio principiante!!!!, formulario frmProveedores, en donde cargo un grid con la lista de los mismos, mediante un botón de Nuevo/Incluir/Agregar, llamo a un segundo formulario frmDetalle, en donde se cargan los datos generales de dicho proveedor,
al grabar la información uso la instrucción frmDetalle.dispose() pero me da error si trato de volverlo a ejecutar para tratar de seguir incluyendo proveedores, cómo puedo corregir o de que manera es mejor manejar el formulario para que me permita usarlo las veces que sea necesario, ya que cuando trato de darle clic a Incluir me indica, y es lógico, que no puede acceder a un objeto que ha sido desechado. gracias!!!

Dim frmDetalle As New FrmDetProveedor

Private Sub BtnNuevo_Click(sender As Object, e As EventArgs) Handles BtnNuevo.Click
frmDetalle.Tipo = "NVO"
If frmDetalle.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
DGProveedores.DataSource = capaNegocio.ListarProveedores.Tables("Proveedores")
LblTotalReg.Text = capaNegocio.ListarProveedores.Tables("Proveedores").Rows.Count
frmDetalle.Dispose()
Else
frmDetalle.Dispose()
End If
End Sub


Botón Actualizar en el Formulario Detalle
If _tipo = "NVO" Then
If TxtNroIden.Text <> String.Empty And TxtNomProvee.Text <> String.Empty And TxtDirProvee.Text <> String.Empty And TxtTlfMovil.Text <> String.Empty And TxtTlfLocal.Text <> String.Empty And TxtContacto.Text <> String.Empty And TxtMail.Text <> String.Empty Then
Try
Dim ObjAgregar As New CEProveedores

ObjAgregar.CodCategoria = CapCodCatetoria()
ObjAgregar.CodTipoEnte = CapCodTipoEnte()
ObjAgregar.CodDocIden = CapCodDocIden()
ObjAgregar.NroDocIden = CapNroIden()
ObjAgregar.NomProvee = CapNomProvee()
ObjAgregar.DirProvee = CapDirProvee()
ObjAgregar.TlfMovil = CapTlfMovil()
ObjAgregar.TlfFijo = CapTlfFijo()
ObjAgregar.MailProvee = CapMailProvee()
ObjAgregar.ContactoProvee = CapContactoProvee()
ObjAgregar.StaProvee = CapStaProvee()

capaNegocio.CrearProveedor(ObjAgregar)

FrmProveedores.DGProveedores.DataSource = capaNegocio.ListarProveedores.Tables("Proveedores")
FrmProveedores.LblTotalReg.Text = capaNegocio.ListarProveedores.Tables("Proveedores").Rows.Count
Me.Dispose()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
MsgBox("Verifique, algunos datos en blanco", MsgBoxStyle.Information, "SistemYaky")
TxtNomProvee.Focus()
End If
End If
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

ShowDialog() Uso de Formulario

Publicado por Phil Rob (1554 intervenciones) el 22/09/2021 09:43:27
Hola,

Quizá es mejor de utilizar frmDetalle.Hide o frmDetalle.Close, no utilizar Dispose para Form que existen en explorador de soluciones.

Y nunca escribir Me.Dispose, Hide es bien o si quieres terminar el programa, puedes escribir END, todo solo.

...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Anibal

ShowDialog() Uso de Formulario

Publicado por Anibal (21 intervenciones) el 22/09/2021 15:43:37
Gracias Phil
use el Hide() segun tu recomendación además limpie los combo box item.clear , datasource = nothing y databindings = notthing y me esta funcionando agradecido
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

ShowDialog() Uso de Formulario

Publicado por Phil Rob (1554 intervenciones) el 22/09/2021 16:20:48
Gracias para el feedback.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Yenier
Val: 27
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

ShowDialog() Uso de Formulario

Publicado por Yenier (27 intervenciones) el 23/09/2021 18:36:48
En caso de dudas de programacion te las puedo evacuar al correo : [email protected] o a mi whatsapp + 506 8949 9901 ,saludos!
Tengo un ejemplo como el que necesitas!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar