Cara terbaik yang saya temukan untuk mengelola input keyboard pada formulir Windows Forms adalah dengan memprosesnya setelah penekanan tombol dan sebelum kontrol terfokus menerima acara tersebut. Microsoft mempertahankan Form
properti tingkat bawaan bernama .KeyPreview untuk memfasilitasi hal yang tepat ini:
public frmForm()
{
// ...
frmForm.KeyPreview = true;
// ...
}
Kemudian peristiwa _KeyDown, _KeyPress, dan / atau _KeyUp formulir dapat diatur untuk mengakses peristiwa masukan sebelum kontrol formulir terfokus pernah melihatnya, dan Anda dapat menerapkan logika pengendali untuk menangkap peristiwa di sana atau membiarkannya melewati ke kontrol formulir terfokus .
Meskipun secara struktural tidak anggun seperti arsitektur perutean peristiwa XAML , hal itu membuat pengelolaan fungsi tingkat bentuk di Winforms jauh lebih sederhana. Lihat catatan MSDN di KeyPreview untuk peringatan.