摘要:C# - 在 WinForm 中讓 Enter 鍵變成 Tab 鍵
在 WinForm 中為了配合使用者的操作習慣,會讓 Enter 鍵擁有 Tab 鍵的功能。這功能有兩種寫法,如下:
第一種:使用 Form 的 KeyDown 事件來完成
Code:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
SendKeys.Send("{Tab}");
}
}
第二種:複寫 ProcessCmdKey 事件
Code:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Enter)
{
SendKeys.Send("{TAB}");
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
呆言呆語:在使用上,第二種方式會比較穩定,因為小呆實際使用的結果發現,第一種方式的寫法在與「MessageBox」及「Focus()」一起運用時,會出現無限「MessageBox」的問題,所以小呆比較建議使用第二種方式。
參考:
Form.ProcessCmdKey 方法
Control.ProcessCmdKey 方法
ContainerControl.ProcessCmdKey 方法
在Winform中,怎麼使我鍵入的Enter鍵變成Tab鍵?
在WinForm中回車鍵(enter)和Esc鍵的設置
關於C#的Form_KeyPress和ProcessCmdKey
焦點問題!!高手請進!!ProcessCmdKey事件!!