在主窗体我有按钮和方法:点击按钮两次关闭形式的ShowDialog模式
private void button2_Click(object sender, EventArgs e)
{
ShowMyDialogBox();
}
public void ShowMyDialogBox()
{
testDialog= new Form3_addrow(tran_in);
DialogResult dr = testDialog.ShowDialog(this);
if (dr == DialogResult.Cancel)
{
testDialog.Close();
}
else if (dr == DialogResult.OK)
{
testDialog.Close();
bool w= kd.dodaj(tran_in);
if (w) MessageBox.Show("Transakcja dodana");
else MessageBox.Show("Coś poszło nie tak...");
}
}
和按钮Form3_addrow:
private void AcptBtn_Click(object sender, EventArgs e)
{
zczytaj();
this.AcptBtn.DialogResult = System.Windows.Forms.DialogResult.OK;
}
一切正常,但我必须单击两次这个按钮。在调试器模式下,我看到第一次点击,按钮处理程序被调用,但没有更多。 第二次,再次调用处理程序,然后控件返回到ShowMyDialogBox()方法。
您应该使用对话框的方式是在完成后使其自动关闭**。你不应该从外面关闭它,而只是检查对话结果。 – Groo