C# 由于某种原因,dialogresult不起作用或部分起作用

C# 由于某种原因,dialogresult不起作用或部分起作用,c#,C#,我把表单做成了一个对话框,表单只有一个文本框,一个OK按钮和一个Cancel按钮。不知何故,除非我更改rnmForm.DialogResult,否则以下操作无法运行=DialogResult.OK),这是为什么 frmRename rnmForm = new frmRename(); rnmForm.ShowDialog(new Form()); if (rnmForm.DialogResult==DialogResult.OK) {

我把表单做成了一个对话框,表单只有一个文本框,一个OK按钮和一个Cancel按钮。不知何故,除非我更改rnmForm.DialogResult,否则以下操作无法运行=DialogResult.OK),这是为什么

 frmRename rnmForm = new frmRename();

        rnmForm.ShowDialog(new Form());
        if (rnmForm.DialogResult==DialogResult.OK)
        {
            MessageBox.Show("test");

        }

在OK click事件中关闭对话框之前,是否确保将对话框结果设置为OK

this.DialogResult = DialogResult.OK;
this.Close();
或在“确定”按钮上设置属性,类似于:

 btnOk.DialogResult = DialogResult.OK;
我还要问,为什么要调用showDialog并指定表单的一个新实例作为所有者,而不是不带参数地调用它。只是不确定那是故意的

rnmForm.ShowDialog();

嗯,我在OK按钮上有一个点击事件,我有一些简单的字符串分配(将textbox.TEXT分配给字符串变量),我还应该在那里做什么?编辑。在调用close之前添加this.DialogResult=DialogResult.Ok。事实上,您是对的,我无意中创建了新表单,并且,我在初始化后放置了btnOk.DialogResult=DialogResult.Ok,然后它工作了public frmRename(){this.StartPosition=FormStartPosition.CenterParent;InitializeComponent();btnOK.DialogResult=DialogResult.OK;}