मैंने विंडोज फॉर्म फॉर्म पर कीबोर्ड इनपुट को प्रबंधित करने का सबसे अच्छा तरीका कीस्ट्रोके के बाद और ध्यान केंद्रित करने से पहले घटना को प्राप्त करने से पहले इसे संसाधित करना है। Microsoft इस सटीक चीज़ को सुविधाजनक बनाने के लिए .KeyPreviewForm
नामक एक अंतर्निहित इन- प्रॉपर्टी रखता है:
public frmForm()
{
// ...
frmForm.KeyPreview = true;
// ...
}
फिर फॉर्म का _KeyDown, _KeyPress, और / या _KeyUp घटनाओं को इनपुट फॉर्म तक पहुंचने से पहले देखा जा सकता है, जब फ़ोकस फ़ोकस कंट्रोल उन्हें देखता है, और आप हैंडलर लॉजिक को लागू कर सकते हैं ताकि वहां होने वाली ईवेंट को कैप्चर किया जा सके और फ़ोकस किए गए फ़ॉर्म नियंत्रण से इसे पारित किया जा सके। ।
यद्यपि XAML के इवेंट-राउटिंग आर्किटेक्चर के रूप में संरचनात्मक रूप से सुशोभित नहीं है , यह Winforms में फ़ॉर्म-स्तर के कार्यों का प्रबंधन बहुत सरल बनाता है। कैविट्स के लिए KeyPreview पर MSDN नोट देखें ।