ฉันจะบันทึกการกดปุ่ม Enter ที่ใดก็ได้ในแบบฟอร์มของฉันและบังคับให้กดปุ่มส่งเหตุการณ์ได้อย่างไร
ฉันจะบันทึกการกดปุ่ม Enter ที่ใดก็ได้ในแบบฟอร์มของฉันและบังคับให้กดปุ่มส่งเหตุการณ์ได้อย่างไร
คำตอบ:
หากคุณตั้งค่าคุณสมบัติของคุณForm
เป็นAcceptButton
หนึ่งButton
ในคุณสมบัติForm
นั้นคุณจะได้รับพฤติกรรมนั้นโดยค่าเริ่มต้น
มิฉะนั้นให้ตั้งค่าKeyPreview
คุณสมบัติเป็นtrue
ในForm
และจัดการกับKeyDown
เหตุการณ์นั้น คุณสามารถตรวจสอบEnter
คีย์และดำเนินการที่จำเป็นได้
private void textBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
button.PerformClick();
}
คุณสามารถกำหนดปุ่มเป็น "AcceptButton" ในคุณสมบัติของแบบฟอร์มและจะจับการกด "Enter" ใด ๆ บนแบบฟอร์มและกำหนดเส้นทางไปยังตัวควบคุมนั้น
ดูวิธีการ: กำหนดปุ่มฟอร์ม Windows เป็นปุ่มยอมรับโดยใช้ตัวออกแบบและสังเกตข้อยกเว้นบางประการที่ระบุไว้ (กล่องข้อความหลายบรรทัด ฯลฯ )
ตามที่ระบุไว้ก่อนหน้านี้ให้ตั้งค่าคุณสมบัติAcceptButtonของฟอร์มของคุณเป็นปุ่มใดปุ่มหนึ่งและตั้งค่าคุณสมบัติDialogResultสำหรับปุ่มนั้นเป็นDialogResult OK เพื่อให้ผู้โทรทราบว่ากล่องโต้ตอบได้รับการยอมรับหรือถูกปิด
คุณสามารถสมัครเข้าร่วมKeyUp
กิจกรรมของTextBox
.
private void txtInput_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
DoSomething();
}
แบบฟอร์มมีคุณสมบัติKeyPreviewที่คุณสามารถใช้เพื่อสกัดกั้นการกดแป้น
เพียงแค่ใช้
this.Form.DefaultButton = MyButton.UniqueID;
** ใส่รหัสปุ่มของคุณแทน 'MyButton'
ตั้งค่าแอตทริบิวต์ KeyPreview ในแบบฟอร์มของคุณเป็น True จากนั้นใช้เหตุการณ์ KeyPress ที่ระดับฟอร์มของคุณเพื่อตรวจหาคีย์ Enter ในการตรวจจับให้โทรรหัสใด ๆ ก็ตามที่คุณมีสำหรับปุ่ม "ส่ง"
if (e.KeyCode.ToString() == "Return")
{
//do something
}