private void textBox_inputStartNO_KeyPress(object sender, KeyPressEventArgs e) {
if (e.KeyChar == (char)Keys.Enter) {
textBox_inputCrurrEndNO.Focus(); // 焦點跳轉成功
}
}
// 副作用:每次按 Enter 系統發出「丁」提示音
KeyPress 事件中,Enter 字元被視為「對話方塊預設按鈕觸發」,系統播放預設提示音。若未標記事件已處理,聲音會響起。
private void textBox_KeyPress(object sender, KeyPressEventArgs e) {
if (e.KeyChar == (char)Keys.Enter) {
e.Handled = true; // 告訴系統:此鍵已處理,不再傳遞、不播放聲音
textBoxNext.Focus();
}
}
private void textBox_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.Enter) {
e.SuppressKeyPress = true; // 抑制後續 KeyPress
textBoxNext.Focus();
}
}
private void textBox_KeyPress(object sender, KeyPressEventArgs e) {
if (e.KeyChar == (char)Keys.Enter) {
e.Handled = true;
SendKeys.Send("{TAB}"); // 依 TabIndex 自動跳下一個控制項
}
}
TabIndex 設定焦點順序(0, 1, 2...)。「設置好控件的 TabIndex,然後使用 SendKeys.Send("{tab}");」
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
if (keyData == Keys.Enter) {
// 找到當前焦點控制項,送出 TAB
SendKeys.Send("{TAB}");
return true; // 已處理
}
return base.ProcessCmdKey(ref msg, keyData);
}