【问题标题】:Close current form if dialog results for dialogbox is cancel关闭对话框的当前形式的对话框结果是取消
【发布时间】:2018-02-09 09:03:13
【问题描述】:

我有一个表格 (frmcustlist)。 在此列表上,我使用数据集扫描列表并检查它现在是否为 0(没有客户离开)。

在这个阶段,我会弹出一个输入框(对话框)来询问新的客户名称。 如果他们按 OK,一切都很好。我也对输入框进行了验证。 但是,如果他们按 CANCEL,我可以让它退出对话框,但不能关闭调用该对话框的 frmcustlist。

using (inputbox ipfirst = new inputbox("Enter Customer First Name:", "", ""))
                    {
                        if (ipfirst.ShowDialog() == DialogResult.OK)
                        {
                            newfirstname = ipfirst.answer;
                        }
                        else
                        {
                            this.Close();
                        }

                    }

现在,this.close() 根本不起作用.. 所以我使用了return; 它阻止它继续询问姓氏和出生日期.. 但我希望它停止提问(比如返回) 以及关闭 frmcustlist。 ... 感谢您提供的任何建议。

ps。这出现在几个地方,但也被称为frmcustlist_load。我不知道这是否会有所作为!

【问题讨论】:

  • 您是否使用 ShowDialog() 显示了您的表单?然后尝试 this.DialogResult = DialogResult.Cancel; 而不是 this.Close()
  • @Steve。伙计谢谢你。我知道这是基本的,我错过了一些东西。 100% 正确。谢谢:)

标签: c# dialog inputbox dialogresult


【解决方案1】:

答案由 STEVE 在 cmets 中提出。 由于 frmcustlist 本身被称为对话框,因此我最终不得不为该对话框提供 Cancel 结果。

有效的最终代码:

using (inputbox ipfirst = new inputbox("Enter Customer First Name:", "", ""))
                    {
                        if (ipfirst.ShowDialog() == DialogResult.OK)
                        {
                            newfirstname = ipfirst.answer;
                        }
                        else
                        {
                            DialogResult = DialogResult.Cancel;
                            return;
                        }

                    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-27
    • 2012-01-08
    • 2012-03-12
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多