Private Sub chkEnviado_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkEnviado.CheckedChanged
If chkEnviado.Checked = True Then
If MsgBox("¿Estas seguro que esta factura esta enviada?", CType(MsgBoxStyle.Question + MsgBoxStyle.YesNo, MsgBoxStyle)) = MsgBoxResult.No Then
chkEnviado.Checked = False
End If
End If
End If
Hasta aquí ni un problema. Hasta que cuando edito la factura enviada, con el btnEditar. Activo: ChkEnviado.Enabled=True y la desseleciono manualmente: chkEnviado.Checked = False
Luego presiono en el btnCancelar para restablecer los datos y me sale el mensaje como si ubiera precionado en el chkEmitido.
Mi pregunta es pues como hago para que no aparezca ese mensaje cuando preciono el boton cancelar.
Estás usando databinding?
Que es eso? :o
Private Sub chkEnviado_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkEnviado.CheckedChanged
If chkEnviado.Checked = True Then
If MsgBox("¿Estas seguro que esta factura esta enviada?", CType(MsgBoxStyle.Question + MsgBoxStyle.YesNo, MsgBoxStyle)) = MsgBoxResult.No Then
chkEnviado.Checked = False
End If
End If
End If
Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
chkEnviado.Checked = True
End Sub
Bueno, aquí esta mas claro. Cuando hago click en el btnCancelar me sale el mensaje como cuando doy click en el chkEnviado.
Pues quiero evitar que salga ese mensaje... no sé. que omita todo su codigo xq lo estoy activando por codigo desde otro lado...
Am nose si te sirva pero primero que pense fue en crear una variable del tipo Booleana y asi ver si oprimio y quedaria algo asi
Dim oprimio as Boolean = False
Private Sub chkEnviado_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkEnviado.CheckedChanged
If oprimio = True Then
oprimio = False
Exit Sub
End If
If chkEnviado.Checked = True Then
If MsgBox("¿Estas seguro que esta factura esta enviada?", CType(MsgBoxStyle.Question + MsgBoxStyle.YesNo, MsgBoxStyle)) = MsgBoxResult.No Then
chkEnviado.Checked = False
End If
End If
End Sub
Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
oprimio = True
chkEnviado.Checked = True
End Sub
deberia funcionar y fue lo primero que se me ocurrio jeje aunque claro hay varias formas mas sencillas.
Puedes hacer la suscripción del evento a mano y entonces desuscribirte cuando vayas a cambiarle el valor a código.
Hola, .mokk.
Ya había pensado en esa solución. Pero, me preguntaba que a lo mejor Vb.Net tiene alguna solución preparada para este tipo de casos. No sé. No creo que las grandes aplicaciones complejas que son desarrolladas por un grupo de programadores solucione ese caso con lo que me has propuesto, o si??
A lo mejor exista algo así:
chkEnviado.Checked = False NoProducirEvento
Mi inquietud es mas por programar de la manera correcta. Es decir, usar los códigos preparados para la situación y no implementar algo sencillo como lo que me has propuesto, aunque funcione perfectamente.
Claro que si no hay otra manera se usa y ya... :huh:
En mi experiencia, podria decirte que la programación de interfaz suele ser un poco parchada, en las grandes aplicaciones toda la logica es relamente abstracta, la logica de interfaz de usuario suele llenarse de parches y trucos de este estilo, algunas suites de controles tienen eventos para detectar cuando el usuario realizo la acción o cuando se lanzo programaticamente.
Atentamente,
Juan Manuel Lombana
Microsoft Certified Professional
Microsoft Student Partner
Medellin - Colombia
Citar
para detectar cuando el usuario realizo la acción o cuando se lanzo programaticamente.
por lo que dices, MANULOMM, si hay gente arreglandose para solucionar este tipo de casos microsoft debería preocuparse y solucionar con un simple:
chkEnviado.Checked = False NoProducirEvento
En su próxima actualización, no creen?!!! >:D
Uhm, no, te de-subscribes haces lo que quieras hacer, y luego te subscribes de nuevo.. Es la vía, que yo al menos, considero correcta.
Hola, [D4N93R]
Me podrías explicar como me suscribo y desuscribo.... :rolleyes:
Claro,
En este enlace lo explican muy bien: http://tinyurl.com/5tm9mpg
:)