2011-08-16 5 views
11

मैं के बारे में सवाल है KeyEventArgs के KeyCode और KeyData और KeyValueKeyCode और Keydata कुंजी प्रकार हैं, लेकिन मुझे नहीं पता कि उनके बीच क्या अंतर है। KeyValue के लिए, मुझे नहीं पता कि यह क्या है - इसमें int प्रकार है, क्या यह दबाए गए कुंजी के char मान देता है?KeyEventArgs.KeyData, KeyEventArgs.KeyCode और KeyEventArgs.KeyValue

मुझे मुख्य घटनाओं के साथ अधिक अनुभव नहीं है; वे कैसे काम करते हैं और उनका उपयोग कैसे करें, इस बारे में कोई स्पष्टीकरण की सराहना की जाएगी।

उत्तर

19

KeyCode में KeyUp या KeyDown ईवेंट का निर्माण करने वाली कुंजी के लिए डेटा शामिल है। KeyData में उस कुंजी का संयोजन CTRL, SHIFT या ALT के साथ होता है यदि उनमें से कोई भी दबाया जाता है।

उदाहरण:

  • प्रेस (और पकड़) के लिए CTRL। KeyDown उठाया जाएगा, KeyCodeKeys.ControlKey, KeyDataKeys.ControlKey | Keys.Control होगा।
  • अभी भी CTRL दबाए रखते हुए, SHIFT दबाएं। KeyDown उठाया जाएगा, KeyCodeKeys.ShiftKey और KeyDataKeys.ShifKey | Keys.Shift | Keys.Control होगा।

ध्यान दें कि KeyData और KeyCodeKeys गणन (जैसे Keys.A, Keys.NumPad4 या Keys.Up) में किसी भी मूल्य हो सकते हैं। ध्यान दें कि जब संशोधक कुंजी में से एक दबाया जाता है, तो इसे KeyData में दो मानों द्वारा दर्शाया जाता है (एक कुंजी के लिए एक और संशोधक मान के लिए एक)। संशोधक Modifiers संपत्ति के माध्यम से भी उपलब्ध हैं।

KeyValue कुंजी का प्रतिनिधित्व करने वाला एक संख्यात्मक मान वापस करेगा, अनिवार्य रूप से KeyCode में मिले मान का प्रतिनिधित्व करने वाला एक पूर्णांक।

+0

तो कुंजी डेटा केवल CTRL ALT या SHIFT कुंजी हो सकता है? और KeyValue के बारे में क्या? – Bosak

+0

अब मैं समझता हूं – Bosak

+0

तो जब मैं अफ़ीफ़्ट कीकोड दबाता हूं तो केवल कुंजी हो सकता है। शिफ्टकी और यह कभी भी Keys.Shif नहीं होगा? ओह और कीज़ 0 से मैक्सकेस तक की गणना की गई हैं या यह एएससीआई तालिका में उल्लिखित है उदाहरण के लिए ए - 65 – Bosak

संबंधित मुद्दे