PreviewKeyDownEventArgs.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / WinForms / Managed / System / WinForms / PreviewKeyDownEventArgs.cs / 1 / PreviewKeyDownEventArgs.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

 
namespace System.Windows.Forms { 

    using System.Diagnostics; 
    using System.Diagnostics.CodeAnalysis;
    using System;

    ///  
    /// 
    ///  
    ///     
    ///       Provides data for the PreviewKeyDownEvent
    ///     
    /// 
    public class PreviewKeyDownEventArgs : EventArgs {

        private readonly Keys _keyData; 
        private bool _isInputKey;
 
        ///  
        /// 
        ///    [To be supplied.] 
        /// 
        public PreviewKeyDownEventArgs(Keys keyData) {
            _keyData = keyData;
        } 

       ///  
        ///  
        ///    
        ///       Gets a value indicating whether the ALT key was pressed. 
        ///    
        /// 
        public bool Alt {
            get { 
                return (_keyData & Keys.Alt) == Keys.Alt;
            } 
        } 

        ///  
        /// 
        ///    
        ///       Gets a value indicating whether the CTRL key was pressed.
        ///     
        /// 
        public bool Control { 
            get { 
                return (_keyData & Keys.Control) == Keys.Control;
            } 
        }

        /// 
        ///  
        ///    
        ///       Gets the keyboard code for a  or  
        ///       event. 
        ///    
        ///  
        //subhag : changed the behaviour of the KeyCode as per the new requirements.
        public Keys KeyCode {
            [
                // Keys is discontiguous so we have to use Enum.IsDefined. 
                SuppressMessage("Microsoft.Performance", "CA1803:AvoidCostlyCallsWherePossible")
            ] 
            get { 
                Keys keyGenerated =  _keyData & Keys.KeyCode;
 
                // since Keys can be discontiguous, keeping Enum.IsDefined.
                if (!Enum.IsDefined(typeof(Keys),(int)keyGenerated))
                    return Keys.None;
                else 
                    return keyGenerated;
            } 
        } 

        ///  
        /// 
        ///    
        ///       Gets the keyboard value for a  or 
        ///       event. 
        ///    
        ///  
        //subhag : added the KeyValue as per the new requirements. 
        public int KeyValue {
            get { 
                return (int)(_keyData & Keys.KeyCode);
            }
        }
 
        /// 
        ///  
        ///     
        ///       Gets the key data for a  or 
        ///       event. 
        ///    
        /// 
        public Keys KeyData {
            get { 
                return _keyData;
            } 
        } 

        ///  
        /// 
        ///    
        ///       Gets the modifier flags for a  or  event.
        ///       This indicates which modifier keys (CTRL, SHIFT, and/or ALT) were pressed. 
        ///    
        ///  
        public Keys Modifiers { 
            get {
                return _keyData & Keys.Modifiers; 
            }
        }

        ///  
        /// 
        ///     
        ///       Gets 
        ///       a value indicating whether the SHIFT key was pressed.
        ///     
        /// 
        public bool Shift {
            get {
                return (_keyData & Keys.Shift) == Keys.Shift; 
            }
        } 
 
        public bool IsInputKey {
            get { 
                return _isInputKey;
            }
            set {
                _isInputKey = value; 
            }
        } 
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK