C# 键盘事件 输入焦点

一 键盘事件

键盘事件:自定义的空间,如何接收键盘输入。
OnKeyDown 按键按下;
OnKeyUp 按键抬起;
OnKeyPress 字符输入;
OnKeyDown:

int keyValue=e.KeyValue;
Keys keyCode=e.KeyCode;

同时,还可以判断是否按下了控制键

if(e.Shift)
{
   Console.WriteLine("同时按下了Shift键");
}

OnkeyPress:
char ch=e.KeyChar;
① 区分大小写,比如,'a’和’A’是不同的;
② 如果一直按着,则KeyPress事件会多次触发;

OnKeyUp:
和OnKeyDown类似,只触发一次。
比OnKeyDown好一些,不会重复触发。一直按着键,松开时触发一次

二 输入的焦点

焦点Focus,表示当前哪个控件接收键盘输入。比如,一个Form里包含多个控件,要想输入,必须先让控件获得焦点。
① 鼠标点击某控件,使其获取焦点;
② 按Tab键,也可以切换焦点;

有的控件支持焦点,如TextBox;
有的控件不支持焦点,如Label;

设置一个控件是否接受焦点;

this.SetStyle(ControlStyles.Selectable,true);

如果自定义控件不接收焦点,则可以设置为false;

三 焦点状态的显示

1 Control.Focused:判断当前是否拥有焦点

在OnPaint中,最好加上焦点状态的表示。例如,绘制一个虚线框表示整处于焦点。

2 焦点切换的相应

OnEnter:控件已获取焦点;
OnLeave:控件已经失去焦点;

3 申请焦点

当鼠标点击控件时,应该申请获取焦点;

你可能感兴趣的:(C#,c#,开发语言)