在C#編程時,有時希望通過按回車鍵,控件焦點就會自動從一個控件跳轉到下一個控件進行操作。 下面通過登錄界面為例,講解兩種實現方法。
問題描述:
以登錄界面為例,當輸入完用戶名后, 若要輸入密碼,則密碼對應的TextBox必須獲得焦點, 一般的辦法是用鼠標去點擊就可以了。但是這樣用戶體驗就會差一些(因為這樣既要操作鼠標,又要操作鍵盤),其實可以實現按回車鍵就能自動獲得下一個控件的焦點,這樣直接用鍵盤輸入就可以了,避免了鼠標的操作。

解決辦法一: 判斷按鍵,手工跳轉到指定法控件
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter) // if (e.KeyValue == 13) 判斷是回車鍵
{
this.textBox2.Focus();
}
}
解決辦法二: 根據控件TabIndex 屬性順序跳轉
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
this.SelectNextControl(this.ActiveControl, true, true, true, true); //需設置textBox的TabIndex順序屬性
}
}
同樣的方法,輸入完成后,也可以按回車鍵直接登錄
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 13)
{
this.button1.Focus();
button1_Click(sender, e); //調用登錄按鈕的事件處理代碼
}
}
