Por que botões precisa ser pressionado duas vezes para trabalho neste diálogo modal?

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

  •  05-07-2019
  •  | 
  •  

Pergunta

Eu tenho esse 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;
    }
}

Ele funciona muito bem, mas quando o diálogo aparece que me obriga a clicar em um botão duas vezes para usá-lo. Alguém tem uma idéia de por que?

Foi útil?

Solução

Você precisa this.DialogResult conjunto em vez de btnxxx.DialogResult nos manipuladores Clique, ou definir o btnxxx.DialogResult antes dos manipuladores.

DialogResult do formulário é definido como o botão de antes do método Click é executado, então a primeira vez que o evento é executado DialogResult do formulário é deixado em Nenhum, mas a segunda vez que é definido para o (agora-set) do botão de DialogResult .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top