C#:不使用按钮时,如何发送对话框的“确定”或“取消”返回消息?

C#:不使用按钮时,如何发送对话框的“确定”或“取消”返回消息?,c#,C#,C#:不使用按钮时,如何发送对话框的“确定”或“取消”返回消息 如果文本框在用户按Enter键时继续,在用户按Ctrl+Q键时发送Cancel,您将如何返回OK消息 无视: 解决方案-this.dialogresult=dialogresult.ok或dialogresult.cancel。我假设您使用的是Windows窗体 有两种方法 对于OK-将表单上的AcceptButton设置为OK按钮。 对于取消-将表单上的Cancelbutton设置为Cancel按钮 或者,您可以手动将窗体Dial

C#:不使用按钮时,如何发送对话框的“确定”或“取消”返回消息

如果文本框在用户按Enter键时继续,在用户按Ctrl+Q键时发送Cancel,您将如何返回OK消息

无视:
解决方案-this.dialogresult=dialogresult.ok或dialogresult.cancel。

我假设您使用的是Windows窗体

有两种方法

对于OK-将表单上的AcceptButton设置为OK按钮。 对于取消-将表单上的Cancelbutton设置为Cancel按钮


或者,您可以手动将窗体DialogResult设置为DialogResult.OK或DialogResult.Cancel,然后以编程方式关闭窗体。

设置窗体的
DialogResult

this.DialogResult = DialogResult.OK;
this.Close();

这将导致任何使用
ShowDialog()
打开此表单的打开程序获得给定的
DialogResult
作为结果。

直接在按钮本身的属性中,有DialogResult属性,可以设置为OK/Cancel/Yes/No/等。。。正如其他人所说,这也可以通过编程进行设置


在按钮所在窗体的属性中,将AcceptButton属性设置为您的按钮。这也会在按下enter键时触发按钮,并突出显示按钮。

但我没有使用“确定”或“取消”按钮。如果我想在用户在文本框中按Enter键时得出接受返回,在用户在文本框中按ESC键时得出取消返回的结论,该怎么办?在这种情况下,您需要使用KeyUp、KeyDown或keypress处理程序截取keypress in代码(我完全忘了是哪一个)然后手动设置对话框Result并关闭表单。表单有一个名为CancelButton的属性,当按下esc键时会激活该属性。VS2005只允许我将其分配给实际按钮。我的解决方案是创建一个真正的按钮,然后简单地将其x坐标设置为负500。这不是AcceptButton,不是DefaultButton吗?@IneedHelp:谢谢。相应地进行了编辑。如果我没有弄错,设置
DialogResult
会自动关闭窗口,因此第二条语句是多余的。您弄错了。表单实际上是隐藏的,而不是关闭的“当用户单击对话框的关闭按钮或设置DialogResult属性的值时,不会自动调用Close方法。相反,窗体是隐藏的,可以再次显示,而无需创建对话框的新实例。由于这种行为,当应用程序不再需要该表单时,必须调用该表单的Dispose方法。”--来自MSDN()@configurator-用户控件如何?如何使其设置表单(保存表单)对话框结果(显然,如果不使用这个.Parent.DialogResult…@ephraim,您需要以某种方式访问表单,所以我猜测是使用
FindForm