Foros del Web » Programación para mayores de 30 ;) » .NET »

Cancelar evento Button DialogResult=DialogResult.yes

Estas en el tema de Cancelar evento Button DialogResult=DialogResult.yes en el foro de .NET en Foros del Web. Hola!! Tengo un formulario (Alta/ Modificación)de dialogo que lo abro en forma modal , mediante f.showdialog(). Este tiene un button aceptar (seteada su propiedad DialogResult=DialogResult.yes) ...
  #1 (permalink)  
Antiguo 23/09/2010, 08:04
Avatar de fechasoru  
Fecha de Ingreso: diciembre-2008
Mensajes: 149
Antigüedad: 15 años, 4 meses
Puntos: 0
Cancelar evento Button DialogResult=DialogResult.yes

Hola!!

Tengo un formulario (Alta/ Modificación)de dialogo que lo abro en forma modal , mediante f.showdialog(). Este tiene un button aceptar (seteada su propiedad DialogResult=DialogResult.yes) y otro cancelar en(DialogResult=DialogResult.No); con el fin de comprobar si acepto desde el formulario padre.
Necesito controlar que algunos campos obligatorios del formularios estén rellenados por el usuario; en caso contrario sí presiona el botón aceptar este Deshabilitado: Acá viene la cuestión de cómo hago para cancelar el evento clic del botón aceptar.
Código:
private void button_aceptar_Click(object sender, EventArgs e)
 {
            if(!!this.validator1.Validate() || this.bindingSource_productores.Count==0 ||   this.bindingSource_asesor.Count==0)
            {
             //Acá iria algo que deshabilite el evento del click y no me cierre la ventana
            }
 }
Actualmente la solución temporaría que implemente , es no poner al boton su propiedad en DialorResult=DialogResult.yes en tiempo de diseño. Lo establezco en la condición anterior dentro del botón clic

Código:


 if(this.validator1.Validate() && this.bindingSource_productores.Count!=0 &&   this.bindingSource_asesor.Count!=0)
            { 
                This.button_aceptar.DialogResult=DialogResult.yes
            }
Pero tiene el problema , que tiene un clic en falso ; o sea el usuario debe hacer dos veces un clic para que se cierre la ventana.
Necesito ayuda de algún forista que diga como controlar dicho evento.
Saludos!!
__________________
Looking for a terrific Persistence Layer and Business Objects system for Microsoft.NET? our blog for more details.

http://www.entityspaces.net
  #2 (permalink)  
Antiguo 23/09/2010, 08:16
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Cancelar evento Button DialogResult=DialogResult.yes

Es imposible, cuando el botón se pulsa se lanza el evento y se cierra la ventana. No es algo que puedas hacer o deshacer. Lo unico que puedes hacer es mostrar otra vez el dialogo, pero sería uno nuevo.
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 23/09/2010, 08:52
Avatar de fechasoru  
Fecha de Ingreso: diciembre-2008
Mensajes: 149
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Cancelar evento Button DialogResult=DialogResult.yes

Solucioné de la siguiente manera; uso el evento closing()

private void Form_abm_cabañas_FormClosing(object sender, FormClosingEventArgs e)
{
if (this.DialogResult == DialogResult.Yes)
{
if (this.validator1.Validate() && this.bindingSource_productores.Count != 0 &&
this.bindingSource_asesor.Count != 0)
{

DialogResult res = MessageBox.Show("¿ Confirma los datos de la nueva Cabaña ?", "Confirmar",
MessageBoxButtons.YesNo, MessageBoxIcon.Question);

if (res == DialogResult.No)
{
e.Cancel = true;

}



}
else
{
e.Cancel = true;

}
}


}
__________________
Looking for a terrific Persistence Layer and Business Objects system for Microsoft.NET? our blog for more details.

http://www.entityspaces.net

Etiquetas: eventos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:24.