在C#中,KeyPreview
屬性用于設置控件在其自身處理鍵盤事件之前接收鍵盤事件。對于希望某個控件(如TextBox
)能夠接收并處理鍵盤輸入的情況,可以設置其KeyPreview
屬性為true
。
以下是一個簡單的示例,演示如何在窗體上的TextBox
控件上設置KeyPreview
屬性:
using System;
using System.Windows.Forms;
public class MainForm : Form
{
private TextBox textBox;
public MainForm()
{
textBox = new TextBox();
textBox.Location = new System.Drawing.Point(10, 10);
textBox.Size = new System.Drawing.Size(200, 20);
textBox.KeyPreview = true; // 設置KeyPreview屬性為true
this.Controls.Add(textBox);
textBox.KeyDown += TextBox_KeyDown; // 訂閱KeyDown事件
}
private void TextBox_KeyDown(object sender, KeyEventArgs e)
{
Console.WriteLine("KeyDown event: " + e.KeyCode);
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
在上面的示例中,我們創建了一個TextBox
控件,并將其KeyPreview
屬性設置為true
。然后,我們訂閱了KeyDown
事件,以便在用戶按下鍵盤上的鍵時執行自定義的操作(在這個例子中,我們只是將按鍵代碼輸出到控制臺)。
請注意,當KeyPreview
屬性設置為true
時,控件將首先處理鍵盤事件,然后再將其傳遞給其父控件或應用程序中的其他控件。這可以確保您的自定義鍵盤處理邏輯在正確的位置執行。