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