为什么按钮需要按两次才能在此模态对话框中工作?
-
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;
}
}
它工作正常,但是当弹出对话框时,它需要我点击两次按钮才能使用它。有谁知道为什么?
解决方案
您需要在Click处理程序中设置 this.DialogResult
而不是 btnxxx.DialogResult
,或者在处理程序之前设置btnxxx.DialogResult。
表单的DialogResult设置为Click方法运行之前的按钮,因此第一次运行该事件时,Form的DialogResult保留为None,但第二次设置为(now-set)按钮的DialogResult
不隶属于 StackOverflow