Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法将“取消”按钮设置为窗体?_C#_Winforms_Visual Studio 2017 - Fatal编程技术网

C# 无法将“取消”按钮设置为窗体?

C# 无法将“取消”按钮设置为窗体?,c#,winforms,visual-studio-2017,C#,Winforms,Visual Studio 2017,我正在学习使用C windows窗体编程。然后我发现cancelButton属性。我尝试将此属性设置为我的窗体,以便当我按下ESC键时,它将关闭我的窗体。但当我双击表单属性中的cancelButton时,除了VS将我的Form1.cs标记为未保存外,什么也不会发生。双击后未创建任何方法。我试图创建私有void cancelButonobject sender,EventArgs e{},但是我为cancelButton选择方法的下拉框拒绝显示我的方法。同样的事情也发生在AcceptButton上

我正在学习使用C windows窗体编程。然后我发现cancelButton属性。我尝试将此属性设置为我的窗体,以便当我按下ESC键时,它将关闭我的窗体。但当我双击表单属性中的cancelButton时,除了VS将我的Form1.cs标记为未保存外,什么也不会发生。双击后未创建任何方法。我试图创建私有void cancelButonobject sender,EventArgs e{},但是我为cancelButton选择方法的下拉框拒绝显示我的方法。同样的事情也发生在AcceptButton上。我曾试图创建一个全新的项目,但没有帮助。
这是VS的错误,还是我遗漏了什么?

您误解了表单的CancelButton和AcceptButton属性的用途

要使窗体的CancelButton属性正常工作,首先必须向窗体中添加一个按钮。然后从窗体的CancelButton属性旁边的下拉列表中选择该按钮

这样做的目的是在用户按下Escape键时自动单击Cancel按钮

类似的逻辑适用于表单的AcceptButton属性,只是当用户按下Enter键时,它会导致单击关联的按钮

完成之后,您仍然需要为按钮单击添加一个处理程序

为此,双击设计器中显示的表单中的按钮-这将自动为您添加处理程序

总结如下:

Form.CancelButton->确定当用户按Escape时将单击哪个按钮

Form.AcceptButton->确定当用户 按回车键

要为按钮添加处理程序,请双击设计器中的按钮


正如我上面提到的,当我双击属性时,什么也没有发生。没有添加处理程序,根本不会发生任何事情。即使我创建了自定义处理程序,在属性下拉列表中也没有什么可供我选择的,正如Matthew提到的,您是否在表单中添加了按钮?首先需要在表单中添加两个按钮,每个操作一个。如果没有这些属性,您就不能使用“取消”或“接受”属性。我确实双击了设计器中的按钮。但没有任何补充。这是我通常做的:创建表单,查找cancelButton属性,双击它添加处理程序,对该处理程序进行编码。但就在最后几个小时,我无法为我的按钮添加处理程序。别让我这么做。你是说一个真正的按钮?不仅仅是属性?据我所知,如果表单上没有真正的按钮,就不能使用这些属性。