¿Por qué es necesario presionar dos veces los botones para trabajar en este diálogo modal?

StackOverflow https://stackoverflow.com/questions/1808336

  •  05-07-2019
  •  | 
  •  

Pregunta

Tengo este código C #:

public partial class Continue : Form
{
    public Continue(string colourName)
    {
        InitializeComponent();
        lblMessage.Text = String.Format("Do you wish to change the colour to {0}", colourName);
    }

    private void btnConfirm_Click(object sender, EventArgs e)
    {
        btnConfirm.DialogResult = DialogResult.OK;
    }

    private void btnCancel_Click(object sender, EventArgs e)
    {
        btnCancel.DialogResult = DialogResult.Cancel;
    }
}

Funciona bien, pero cuando aparece el cuadro de diálogo, debo hacer clic en un botón dos veces para usarlo. ¿Alguien tiene una idea de por qué?

¿Fue útil?

Solución

Debe establecer this.DialogResult en lugar de btnxxx.DialogResult en los controladores de clic, o configurar btnxxx.DialogResult antes de los controladores.

El DialogResult del formulario se establece en el botón antes de que se ejecute el método Click, por lo que la primera vez que se ejecuta el evento, el DialogResult del formulario se deja en Ninguno, pero la segunda vez se configura en el botón (ahora establecido) DialogResult .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top