ฉันเพิ่งมาใหม่และฉันมีปัญหาเล็กน้อยกับแอปพลิเคชัน C# อยากจับภาพเหตุการณ์คีย์ดาวน์ นี่ไม่ใช่ปัญหาในตอนแรก แต่หลังจากที่ฉันเพิ่มปุ่มบางปุ่มลงในแบบฟอร์ม เหตุการณ์การกดปุ่มลงของแบบฟอร์มจะไม่สนใจปุ่มลูกศรและย้ายโฟกัสจากปุ่มหนึ่งไปยังปุ่มถัดไป (เหตุการณ์การกดปุ่มขึ้นทำงานได้) มี จะหยุดสิ่งนี้และทำให้พวกเขาทำอย่างอื่นเมื่อฉันกดปุ่มลูกศรค้างไว้ได้อย่างไร
เหตุการณ์คีย์ดาวน์ที่ได้รับผลกระทบจากปุ่ม
คำตอบ (2)
ตั้งค่าคุณสมบัติ KeyPreview บนแบบฟอร์มให้เป็นจริง ซึ่งจะช่วยให้แบบฟอร์มสามารถดูเหตุการณ์การกดแป้นพิมพ์ได้นอกเหนือจากการควบคุมลูก
เพิ่มสิ่งนี้ลงในแบบฟอร์มของคุณ ...
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData.Equals(Keys.Right))
{
MessageBox.Show("Right Key Pressed!");
}
return base.ProcessCmdKey(ref msg, keyData);
}
person
JP Alioto
schedule
03.05.2009
ฉันตั้งค่า KeyPreview เป็นจริง แต่ยังไม่ได้รับการตอบสนองใดๆ เมื่อกดปุ่มลูกศร ดูเหมือนว่าปุ่มอื่นๆ ทั้งหมดจะทำงานในเหตุการณ์ KeyDown ยกเว้นลูกศร
- person sheitan; 04.05.2009
เหตุการณ์ Form Key* ปกติไม่ยึดปุ่มควบคุม คุณต้องแทนที่ ProcessCmdKey แทน
- person JP Alioto; 04.05.2009
ขอบคุณมาก. สิ่งนี้ช่วยฉันได้มาก! :)
- person sheitan; 04.05.2009
หากคุณไม่ต้องการให้ฟังก์ชันการลงคีย์ปกติสำหรับตัวควบคุม คุณจะต้องตั้งค่าเหตุการณ์การลงคีย์บนแต่ละตัวควบคุม และตั้งค่าแอตทริบิวต์ที่ได้รับการจัดการสำหรับอาร์กิวเมนต์เหตุการณ์ให้เป็นจริง ด้วยวิธีดังกล่าวจะไม่เกิดฟองขึ้น ฟังก์ชันการควบคุมในตัว
person
Sebastian Bender
schedule
03.05.2009