Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / WinForms / Managed / System / WinForms / KeyEvent.cs / 1 / KeyEvent.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
*/
namespace System.Windows.Forms {
using System.Diagnostics;
using System;
using System.Drawing;
using System.ComponentModel;
using Microsoft.Win32;
using System.Diagnostics.CodeAnalysis;
///
///
///
/// Provides data for the or
/// event.
///
///
[System.Runtime.InteropServices.ComVisible(true)]
public class KeyEventArgs : EventArgs {
///
///
/// Contains key data for KeyDown and KeyUp events. This is a combination
/// of keycode and modifer flags.
///
private readonly Keys keyData;
///
///
/// Determines if this event has been handled by a handler. If handled, the
/// key event will not be sent along to Windows. If not handled, the event
/// will be sent to Windows for default processing.
///
private bool handled = false;
///
///
///
private bool suppressKeyPress = false;
///
///
///
/// Initializes a new
/// instance of the class.
///
///
public KeyEventArgs(Keys keyData) {
this.keyData = keyData;
}
///
///
///
/// Gets a value indicating whether the ALT key was pressed.
///
///
public virtual 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 or sets a value
/// indicating whether the event was handled.
///
///
//
public bool Handled {
get {
return handled;
}
set {
handled = value;
}
}
///
///
///
/// 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 virtual bool Shift {
get {
return (keyData & Keys.Shift) == Keys.Shift;
}
}
///
///
///
//
public bool SuppressKeyPress {
get {
return suppressKeyPress;
}
set {
suppressKeyPress = value;
handled = value;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
*/
namespace System.Windows.Forms {
using System.Diagnostics;
using System;
using System.Drawing;
using System.ComponentModel;
using Microsoft.Win32;
using System.Diagnostics.CodeAnalysis;
///
///
///
/// Provides data for the or
/// event.
///
///
[System.Runtime.InteropServices.ComVisible(true)]
public class KeyEventArgs : EventArgs {
///
///
/// Contains key data for KeyDown and KeyUp events. This is a combination
/// of keycode and modifer flags.
///
private readonly Keys keyData;
///
///
/// Determines if this event has been handled by a handler. If handled, the
/// key event will not be sent along to Windows. If not handled, the event
/// will be sent to Windows for default processing.
///
private bool handled = false;
///
///
///
private bool suppressKeyPress = false;
///
///
///
/// Initializes a new
/// instance of the class.
///
///
public KeyEventArgs(Keys keyData) {
this.keyData = keyData;
}
///
///
///
/// Gets a value indicating whether the ALT key was pressed.
///
///
public virtual 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 or sets a value
/// indicating whether the event was handled.
///
///
//
public bool Handled {
get {
return handled;
}
set {
handled = value;
}
}
///
///
///
/// 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 virtual bool Shift {
get {
return (keyData & Keys.Shift) == Keys.Shift;
}
}
///
///
///
//
public bool SuppressKeyPress {
get {
return suppressKeyPress;
}
set {
suppressKeyPress = value;
handled = value;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StructuralType.cs
- EntityDataSourceWrapperPropertyDescriptor.cs
- HandleRef.cs
- ContentPlaceHolder.cs
- XmlArrayItemAttributes.cs
- DateTimeOffsetAdapter.cs
- MailDefinition.cs
- TabControlAutomationPeer.cs
- Stopwatch.cs
- SimpleWebHandlerParser.cs
- EntityDataSourceDesigner.cs
- CodeCastExpression.cs
- ScriptResourceAttribute.cs
- TemplateXamlParser.cs
- ProfileModule.cs
- ModifiableIteratorCollection.cs
- AssemblyHash.cs
- InvokeMethodActivityDesigner.cs
- TemplateLookupAction.cs
- PageAsyncTask.cs
- ExtensionFile.cs
- TextHidden.cs
- GridSplitter.cs
- TableSectionStyle.cs
- ConfigurationValue.cs
- StringInfo.cs
- XomlCompilerResults.cs
- HelpKeywordAttribute.cs
- Trace.cs
- RetriableClipboard.cs
- X509SecurityTokenProvider.cs
- Int16Animation.cs
- DataGridViewCellPaintingEventArgs.cs
- dataobject.cs
- DesignerActionGlyph.cs
- Odbc32.cs
- PrimitiveCodeDomSerializer.cs
- VirtualDirectoryMapping.cs
- ExpandableObjectConverter.cs
- XmlElementList.cs
- OracleInternalConnection.cs
- ClientScriptItemCollection.cs
- SystemDropShadowChrome.cs
- DataGridViewToolTip.cs
- RpcAsyncResult.cs
- HttpModuleAction.cs
- ParameterBinding.cs
- NavigationHelper.cs
- DoubleUtil.cs
- Exception.cs
- LoginStatusDesigner.cs
- InputProcessorProfiles.cs
- XmlSchemaAnyAttribute.cs
- ListViewTableCell.cs
- RoutedPropertyChangedEventArgs.cs
- RetriableClipboard.cs
- DataGridViewRowEventArgs.cs
- IsolatedStoragePermission.cs
- SamlSubjectStatement.cs
- ServicePointManagerElement.cs
- TdsValueSetter.cs
- SmiContext.cs
- XmlWhitespace.cs
- WindowPattern.cs
- OutputCacheModule.cs
- DbgCompiler.cs
- InputMethodStateChangeEventArgs.cs
- HtmlInputCheckBox.cs
- ContentType.cs
- SQLMoneyStorage.cs
- AssemblyCache.cs
- WsdlWriter.cs
- Codec.cs
- AffineTransform3D.cs
- FixedSchema.cs
- QueryContinueDragEventArgs.cs
- Descriptor.cs
- ComponentConverter.cs
- BackStopAuthenticationModule.cs
- XmlDownloadManager.cs
- RowToParametersTransformer.cs
- MissingSatelliteAssemblyException.cs
- DispatchWrapper.cs
- Button.cs
- SafeNativeMethods.cs
- ExpandedWrapper.cs
- EntityCollection.cs
- HwndAppCommandInputProvider.cs
- Point.cs
- SecurityManager.cs
- XmlCharCheckingReader.cs
- ProcessProtocolHandler.cs
- CodeMemberField.cs
- DataContext.cs
- Int64Animation.cs
- ExtractorMetadata.cs
- VisualStyleElement.cs
- AccessDataSource.cs
- DrawingContextDrawingContextWalker.cs
- PeerValidationBehavior.cs