KeyPreview的属性的使用
来源:互联网 发布:linux执行命令 编辑:程序博客网 时间:2024/05/18 01:19
在使用.Net Framework编写窗体应用程序的时候,有时有需要响应窗体的按键消息。
当窗体上没有任何其他控件的时候,窗体是可以直接响应这些消息的。
但是当窗体上有其他控件时,会发现窗体再也不会响应这些消息了,因为这些消息都由其上的控件所处理掉并且不再发给父窗体。
但是响应窗体上的按键消息是很有必要的,经一番探索,发现Form类有一个KeyPreview的属性,可以让它接收得到按键消息。它的定义如下:
KeyPreview的属性
获取或设置一个值,该值指示在将键事件传递到具有焦点的控件前,窗体是否将接收此键事件。
命名空间:System.Windows.Forms
程序集:System.Windows.Forms(在 system.windows.forms.dll 中)
C#
public bool KeyPreview { get; set; }
属性值
如果窗体将接收所有键事件,则为 true;如果窗体上当前选定控件接收键事件,则为 false。默认为 false。当此属性设置为 true 时,窗体将接收所有 KeyPress、KeyDown 和 KeyUp 事件。在窗体的事件处理程序处理完该击键后,然后将该击键分配给具有焦点的控件。例如,如果 KeyPreview 属性设置为 true,而且当前选定的控件是 TextBox,则在窗体的事件处理程序处理了击键后,TextBox 控件将接收所按的键。要仅在窗体级别处理键盘事件并且不允许控件接收键盘事件,请将窗体的 KeyPress 事件处理程序中的KeyPressEventArgs.Handled 属性设置为 true。
可以使用此属性处理应用程序中的大部分击键事件,并可以处理击键事件或调用适当的控件来处理击键事件。例如,当应用程序使用功能键时,可能希望在窗体级别处理这些击键,而不是为可能接收击键事件的每个控件编写代码。
注意
如果窗体没有可见或启用的控件,则该窗体自动接收所有键盘事件。
可以对窗体上的控件进行编程,以取消它所接收的任何击键。由于控件从不向窗体发送这些击键,因此无论 KeyPreview 为何种设置,窗体永远都无法看到它们。
- KeyPreview的属性的使用
- VB.NET窗体的KeyPreview属性
- keypreview的作用
- Form窗体的KeyPreview属性的妙用(.NET C#)
- Form窗体的KeyPreview属性的妙用(.NET C#)
- 使用C#的属性
- toolboxbitmap属性的使用
- Dock属性的使用
- C# 属性的使用
- 方法、属性的使用
- 属性动画的使用
- EditText的属性使用
- 自定义属性的使用
- reRender属性的使用
- UIView属性的使用
- UIView的属性使用
- layout_weight属性的使用
- html属性的使用
- JAVA DATE类型比较
- 图片选择器
- centos mysql占用磁盘空间过大解决方法
- iOS获取UUID,并使用keychain存储
- r语言处理mysql数据
- KeyPreview的属性的使用
- Android Studio打包出现Error:(4) Error: "text" is not translated in "zh" (Ch......
- java学习:为JAVA正名:关于Java性能的9个谬论
- qsort和sort学习与比较
- eclipse标准版开发web项目需要的插件
- 对MAC自带的SVN进行升级
- Android testing - How to install adb on Windows / Mac
- github版本库使用(命令行及图形界面版)
- 攻击与防范