KeyPressEventArgs 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为 KeyPress 事件提供数据。
public ref class KeyPressEventArgs : EventArgs
[System.Runtime.InteropServices.ComVisible(true)]
public class KeyPressEventArgs : EventArgs
public class KeyPressEventArgs : EventArgs
[<System.Runtime.InteropServices.ComVisible(true)>]
type KeyPressEventArgs = class
inherit EventArgs
type KeyPressEventArgs = class
inherit EventArgs
Public Class KeyPressEventArgs
Inherits EventArgs
- 继承
- 属性
示例
以下示例演示如何使用 KeyPressEventArgs 在按下时对键进行计数,并在每次按下键后显示结果。 Handled 然后将 设置为 true,使操作系统不进一步处理密钥。 该示例假定窗体上放置了 。TextBox
public ref class myKeyPressClass
{
private:
static long keyPressCount = 0;
static long backspacePressed = 0;
static long returnPressed = 0;
static long escPressed = 0;
TextBox^ textBox1;
void myKeyCounter( Object^ sender, KeyPressEventArgs^ ex )
{
switch ( ex->KeyChar )
{
// Counts the backspaces.
case '\b':
backspacePressed = backspacePressed + 1;
break;
// Counts the ENTER keys.
case '\r':
returnPressed = returnPressed + 1;
break;
// Counts the ESC keys.
case (char)27:
escPressed = escPressed + 1;
break;
// Counts all other keys.
default:
keyPressCount = keyPressCount + 1;
break;
}
textBox1->Text = String::Concat(
backspacePressed, " backspaces pressed\r\n",
escPressed, " escapes pressed\r\n",
returnPressed, " returns pressed\r\n",
keyPressCount, " other keys pressed\r\n" );
ex->Handled = true;
}
};
public class myKeyPressClass
{
static long keyPressCount = 0 ;
static long backspacePressed = 0;
static long returnPressed = 0 ;
static long escPressed = 0 ;
private TextBox textBox1 = new TextBox();
private void myKeyCounter(object sender, KeyPressEventArgs ex)
{
switch(ex.KeyChar)
{
// Counts the backspaces.
case '\b':
backspacePressed = backspacePressed + 1;
break ;
// Counts the ENTER keys.
case '\r':
returnPressed = returnPressed + 1 ;
break ;
// Counts the ESC keys.
case (char)27:
escPressed = escPressed + 1 ;
break ;
// Counts all other keys.
default:
keyPressCount = keyPressCount + 1 ;
break;
}
textBox1.Text =
backspacePressed + " backspaces pressed\r\n" +
escPressed + " escapes pressed\r\n" +
returnPressed + " returns pressed\r\n" +
keyPressCount + " other keys pressed\r\n" ;
ex.Handled = true ;
}
}
Public Class myKeyPressClass
Private Shared keyPressCount As Long = 0
Private Shared backspacePressed As Long = 0
Private Shared returnPressed As Long = 0
Private Shared escPressed As Long = 0
Private textBox1 As TextBox
Private Sub myKeyCounter(sender As Object, ex As KeyPressEventArgs)
Select Case ex.KeyChar
' Counts the backspaces.
Case ControlChars.Back
backspacePressed = backspacePressed + 1
' Counts the ENTER keys.
Case ControlChars.Lf
returnPressed = returnPressed + 1
' Counts the ESC keys.
Case Convert.ToChar(27)
escPressed = escPressed + 1
' Counts all other keys.
Case Else
keyPressCount = keyPressCount + 1
End Select
textBox1.Text = backspacePressed & " backspaces pressed" & _
ControlChars.Lf & ControlChars.Cr & escPressed & _
" escapes pressed" & ControlChars.CrLf & returnPressed & _
" returns pressed" & ControlChars.CrLf & keyPressCount & _
" other keys pressed" & ControlChars.CrLf
ex.Handled = True
End Sub
End Class
必须创建此类的新实例。 还必须设置 事件处理程序。 可以在类的构造函数中执行此操作。
public:
myKeyPressClass^ myKeyPressHandler;
Form1()
{
myKeyPressHandler = gcnew myKeyPressClass;
InitializeComponent();
textBox1->KeyPress += gcnew KeyPressEventHandler(
myKeyPressHandler, &myKeyPressClass::myKeyCounter );
}
myKeyPressClass myKeyPressHandler = new myKeyPressClass();
public Form1()
{
InitializeComponent();
textBox1.KeyPress += new KeyPressEventHandler(myKeyPressHandler.myKeyCounter);
}
Private myKeyPressHandler As New myKeyPressClass()
Public Sub New()
InitializeComponent()
AddHandler textBox1.KeyPress, AddressOf myKeyPressHandler.myKeyCounter
End Sub
在 控件中引发指定事件时,将调用附加方法,应用程序可以执行代码来响应事件。
注解
指定 KeyPressEventArgs 当用户按下某个键时组合的字符。 例如,当用户按 SHIFT + K 时, KeyChar 属性返回大写的 K。
KeyPress当用户按下某个键时发生事件。 与 事件密切相关的 KeyPress 两个事件是 KeyUp 和 KeyDown。 当用户 KeyDown 按下某个键时, 事件位于每个 KeyPress 事件之前,当用户 KeyUp 释放键时,事件发生。 当用户按住某个键时,每次字符重复时都会发生重复 KeyDown 和 KeyPress 事件。 发布时生成一个 KeyUp 事件。
对于每个 KeyPress 事件, KeyPressEventArgs 都会传递 。 随 KeyEventArgs 每个 KeyDown 和 KeyUp 事件一起传递 。 指定 KeyEventArgs 是否与另一个键一起按下任何 (CTRL、SHIFT 或 Alt) 的修饰键。 (还可以通过 ModifierKeys class 的 Control 属性获取此修饰符信息。)
设置为 Handledtrue
可取消事件 KeyPress
。 这可以防止控件处理按键。
注意
某些控件将处理 上的 KeyDown某些键笔划。 例如, RichTextBox 在调用 之前 KeyPress 处理 Enter 键。 在这种情况下,无法取消 KeyPress 事件,并且必须从 取消键笔划 KeyDown 。
有关事件模型的信息,请参阅 处理和引发事件。
构造函数
KeyPressEventArgs(Char) |
初始化 KeyPressEventArgs 类的新实例。 |
属性
Handled |
获取或设置一个值,该值指示是否处理过 KeyPress 事件。 |
KeyChar |
获取或设置与按下的键对应的字符。 |
方法
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |