前言
在C#的form工程中,微软提供了非常方便的确认和取消快捷默认按键设置,该设置直接可以在窗体属性中进行设置。下面以VS2019 为例简单介绍
新建窗体工程
1、新建工程,将新窗体命名和大小指定,后添加那我们的按钮
2、添加按键,将控件添加到主窗体中,如下图所示,我们将按钮命名和指定位置,我将其命名为EnterBatton和CancelButton。
3、将窗口的Misc杂项属性中的AcceptButton和CancelButton属性中的按键选择为EnterBatton和CancelButton。特别注意这里是选择窗体的属性,而不是按键的属性,选择之后可以发现EnterBatton被套上了一个蓝色的框框。选择作为AcceptButton按键,将会使其成为默认回车按键的触发按键;选择作为CancelButton按键,将会使其成为ESC键的触发事件按键。
设置按键代码
为了说明简单,我添加最简单的代码来演示。
private void enter_button_Click(object sender, EventArgs e)
{
MessageBox.Show("你按下了回车!");
}
private void cancel_button_Click(object sender, EventArgs e)
{
MessageBox.Show("你取消了!");
}
验证效果
这样一个最简单的程序就可以运行起来之后,就可以看到这个功能的效果了,可以发现:
1、enterButton被首先附上了焦点,你直接按下回车便会触发enterButton的按键事件,显示你按下了回车!"。
2、按下ESC按键,就会触发cancelButton的事件,显示"你取消了!"。
思考
-
那我先提出一个思考:
如果焦点在cancelButton按键上,按回车是什么效果呢?触发谁的事件呢?
有兴趣的一定会动手验证一番,可以发现将焦点定位到CancelButton按键上之后,蓝色框框已经移动到了CancelButton按键上了,这时候无论是按回车还是ESC都是触发CancelButton的事件。 -
另一个思考
如果还有其他的控件比如文本框,焦点处于文本框中,可以输入字符。那这时候回车和ESC是触发谁的事件呢?
感兴趣的朋友们可以自己试一试哦!