首先需要知道一个知识点,Form控件,Panel控件和GroupBox控件等容器类控件默认是不接收焦点的,而是负责管理容器中控件的焦点。当容器控件被选中时,默认把焦点传送至容器内Tab顺序为0的控件。

  当Form窗体中包含可以接收焦点和键盘事件的控件时,如TextBox,如果KeyPreview属性设置为false(默认值),那么Form类是不响应键盘消息的,消息被直接发送至拥有焦点的控件。如果需要在控件接收键盘事件前对键盘事件(KeyPress,KeyDown,KeyUp)进行处理,便需要将KeyPreview属性设置为true。这时可以重写Form类的OnKeyPress等函数,或者为KeyPress属性添加事件处理函数。

  这里有一个例外情况,就是当Form窗体中不包含可以接收焦点和键盘事件的控件(包括直接包含和通过窗体上其他容器控件包含),那么无论KeyPreview的属性值为true或false,Form类总能够接收到键盘事件。

相关文章:

  • 2021-07-29
  • 2022-12-23
  • 2021-12-24
  • 2022-12-23
  • 2022-12-23
  • 2021-10-28
  • 2021-04-09
  • 2021-09-09
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-01-15
  • 2022-12-23
  • 2021-11-05
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案