C# Form.DialogResult有问题

C# Form.DialogResult有问题,c#,winforms,showdialog,dialogresult,C#,Winforms,Showdialog,Dialogresult,我不明白我在这里做错了什么,如果用户以frmCust.ShowDialog()的形式点击OK,我想执行条件语句。 目前我只能访问“dev1”。也许您的对话框没有设置对话框结果。确保“确定”和“取消”按钮的对话框结果属性设置为您期望的属性。确保在关闭窗体之前正确分配该窗体的属性。 因此,它将像返回值ShowDilaog()call一样返回 还有另一个选项,即使用和,为了处理相应的输入和取消按键。在行上放置断点(F9): private void mnuCustomerAdd_Click(objec

我不明白我在这里做错了什么,如果用户以
frmCust.ShowDialog()
的形式点击OK,我想执行条件语句。
目前我只能访问“dev1”。

也许您的对话框没有设置对话框结果。确保“确定”和“取消”按钮的
对话框结果
属性设置为您期望的属性。

确保在关闭
窗体之前正确分配该窗体的属性。
因此,它将像返回值
ShowDilaog()
call一样返回

还有另一个选项,即使用和,为了处理相应的
输入
取消
按键。

在行上放置断点(F9):

private void mnuCustomerAdd_Click(object sender, EventArgs e)
    {
        CustomerForm frmCust = new CustomerForm("Add A New Customer");

        int index = lstCustomers.SelectedIndex;
        if (index != -1)
            frmCust.CustomerData = new Customer(customerMngr.GetCustomer(index).ContactData);


        MessageBox.Show("dev1");
        DialogResult dr = frmCust.ShowDialog();
        if (dr == DialogResult.OK)
        {
            MessageBox.Show("dev2");
            if (frmCust.ReadInput())
            {
                MessageBox.Show("dev3");
                customerMngr.AddCustomer(frmCust.CustomerData);
            }
            else
                MessageBox.Show("Please supply all necessary fields with the correct information");
        }
        UpdateCustomerList();

    }
当对话框关闭时,您将有机会检查
dr
的设置

要使对话框返回DialogResult.OK,您可以在对话框的OK按钮中进行设置:

if (dr == DialogResult.OK)

或者你可以在Tigran's中进行选择。

你是否在对话框中设置了
对话框结果
?请给这篇文章一个实际的问题/标题。简单地输入代码并不能帮助任何人一眼就理解这个问题。MSDN是你的朋友:我已经解决了这个问题!感谢链接到MSDN,不幸的是我发现它很难使用,所以我转而使用stackoverflow。接受这个答案,因为这是最直接的解决方案,谢谢!感谢您的帮助,我将在下次更仔细地检查有故障的变量。
void buttonOK_Click(object sender, EventArgs e)
{ 
    this.DialogResult = DialogResult.OK;
    Close();
}