
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
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


0