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 屬性來取得此修飾詞資訊。)
設定 Handled 為 true
以取消 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) |