Me colgue con el tema, igualmente ya lo solucioné.
Las validaciones no las puedo hacer desde el formulario Origen, ya que lo abro desde varios lugares, y para ahorrarme codigo lo pongo en el Load del formulario destino.
El Application.Exit no me sirve porque no es un formulario para que cierre el sistema. tampoco el Exit sub, con este codigo cancela el evento, pero carga el formulario igual.
No se porque a ustedes no les toma error el Me.Close(), quizás sea el Option Explicit o Strict o algo de eso, sino, no hay explicación.
Lo que hice fue lo siguiente (por si a alguien le interesa):
Código:
Try
Me.Cursor = Cursors.WaitCursor
If st = State.Alta Then
If CargarEmpresa() Then
'Si carga bien la empresa
mixml.UpdateForm(Me)
FacturaHabilitada = True
Else
' Cancele el cargar empresa o algun error
Me.Hide()
FacturaHabilitada = False
End If
Else
mixml.UpdateForm(Me)
FacturaHabilitada = True
End If
End Sub Y luego en el activated del formulario:
Código:
Private Sub FrmProvFactura_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
If FacturaHabilitada = False Then
Me.Dispose()
End If
End Sub Saludos!