Почему кнопки нужно нажимать дважды, чтобы работать в этом модальном диалоге?
-
05-07-2019 - |
Вопрос
У меня есть этот код 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;
}
}
Он работает нормально, но когда всплывает диалоговое окно, мне нужно дважды нажать на кнопку, чтобы использовать его. У кого-нибудь есть идея, почему?
Решение
Вам нужно установить this.DialogResult
вместо btnxxx.DialogResult
в обработчиках Click или установить btnxxx.DialogResult перед обработчиками.
DialogResult формы устанавливается равным значению кнопки до запуска метода Click, поэтому при первом запуске события DialogResult формы остается равным None, но во второй раз устанавливается значение DialogResult кнопки (теперь установлено). . р>
Не связан с StackOverflow