Form.DialogResult 出现问题


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();
    }

不明白我在这里做错了什么,如果用户在 frmCust.ShowDialog() 中显示的表单中点击确定,我想执行条件语句。目前我只能到达"dev1"。

也许您的对话框没有设置对话框结果。 确保"确定"和"取消"按钮的DialogResult属性设置为预期值。

请确保在关闭Form之前正确分配的 DialogResult 属性。因此,它将像ShowDilaog()调用的返回值一样返回。

还有另一种选择,是使用接受按钮和取消按钮,以处理相应的EnterCancel按键。

在行上放置一个断点 (F9(:

if (dr == DialogResult.OK)

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

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

void buttonOK_Click(object sender, EventArgs e)
{ 
    this.DialogResult = DialogResult.OK;
    Close();
}

或者你可以在蒂格兰的答案中做这个选项。

相关内容

  • 没有找到相关文章

最新更新