Tema destacado: [Overclocking] Récords de overclock del foro
Autor
|
Tema: Eventos (Leído 1,185 veces)
|
TheGhost(Z)
Desconectado
Mensajes: 232
|
 |
Eventos
« en: 12 Enero 2011, 15:06 » |
|
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 = FalseLuego 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.
|
|
|
|
« Última modificación: 13 Enero 2011, 15:10 por [D4N93R] »
|
En línea
|
|
|
|
|
[D4N93R]
|
Estás usando databinding?
|
|
|
|
|
En línea
|
|
|
|
|
|
TheGhost(Z)
Desconectado
Mensajes: 232
|
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...
|
|
|
|
|
En línea
|
|
|
|
.mokk.
Desconectado
Mensajes: 177
|
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.
|
|
|
|
« Última modificación: 13 Enero 2011, 18:04 por .mokk. »
|
En línea
|
|
|
|
|
[D4N93R]
|
Puedes hacer la suscripción del evento a mano y entonces desuscribirte cuando vayas a cambiarle el valor a código.
|
|
|
|
|
En línea
|
|
|
|
TheGhost(Z)
Desconectado
Mensajes: 232
|
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... 
|
|
|
|
|
En línea
|
|
|
|
MANULOMM
Desconectado
Mensajes: 559
Erepublik.com
|
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
|
|
|
|
|
En línea
|
|
|
|
TheGhost(Z)
Desconectado
Mensajes: 232
|
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?!!! 
|
|
|
|
|
En línea
|
|
|
|
|
[D4N93R]
|
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.
|
|
|
|
|
En línea
|
|
|
|
TheGhost(Z)
Desconectado
Mensajes: 232
|
Hola, [D4N93R]Me podrías explicar como me suscribo y desuscribo.... 
|
|
|
|
|
En línea
|
|
|
|
|
|
|
|