Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / KeyEvent.cs / 1305376 / 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
- WebPartMenuStyle.cs
- InternalTypeHelper.cs
- HashMembershipCondition.cs
- IIS7WorkerRequest.cs
- SqlDataSourceSummaryPanel.cs
- StickyNoteContentControl.cs
- ClusterRegistryConfigurationProvider.cs
- WindowsFont.cs
- GridPattern.cs
- ApplicationHost.cs
- _HeaderInfo.cs
- _SslState.cs
- Header.cs
- HwndTarget.cs
- ThrowHelper.cs
- SQLDecimalStorage.cs
- InputElement.cs
- ErrorWebPart.cs
- TileBrush.cs
- DetailsViewPagerRow.cs
- FileUpload.cs
- StatusBarItemAutomationPeer.cs
- ListMarkerLine.cs
- OLEDB_Util.cs
- JumpTask.cs
- PropertyGrid.cs
- ConstraintEnumerator.cs
- UriParserTemplates.cs
- HistoryEventArgs.cs
- ObjectAnimationUsingKeyFrames.cs
- XmlIncludeAttribute.cs
- SortKey.cs
- HwndHostAutomationPeer.cs
- SerialPinChanges.cs
- basenumberconverter.cs
- ReferencedAssembly.cs
- Figure.cs
- CompilerGlobalScopeAttribute.cs
- ResourceKey.cs
- RTLAwareMessageBox.cs
- XmlUrlResolver.cs
- WindowsPrincipal.cs
- TextRange.cs
- ClosureBinding.cs
- MenuBindingsEditorForm.cs
- EventPrivateKey.cs
- Viewport3DAutomationPeer.cs
- AssemblyEvidenceFactory.cs
- TraceUtility.cs
- SourceFileBuildProvider.cs
- WebConfigurationFileMap.cs
- HttpWriter.cs
- BasicViewGenerator.cs
- TypeListConverter.cs
- PermissionToken.cs
- AssociativeAggregationOperator.cs
- KeyFrames.cs
- DiffuseMaterial.cs
- CodeTypeReferenceCollection.cs
- StylusPoint.cs
- SqlBulkCopy.cs
- XmlArrayAttribute.cs
- Pen.cs
- ImpersonateTokenRef.cs
- InputGestureCollection.cs
- EntityKey.cs
- StateItem.cs
- ScriptReferenceBase.cs
- LicenseContext.cs
- MobileTextWriter.cs
- ToolZoneDesigner.cs
- _CommandStream.cs
- TypeInitializationException.cs
- DivideByZeroException.cs
- RightsManagementEncryptedStream.cs
- FileLoadException.cs
- BaseParagraph.cs
- MsmqIntegrationProcessProtocolHandler.cs
- EventPrivateKey.cs
- QuaternionValueSerializer.cs
- SqlParameterizer.cs
- SqlConnectionPoolProviderInfo.cs
- StoryFragments.cs
- BitmapEffectGeneralTransform.cs
- Event.cs
- GetWinFXPath.cs
- SystemIPv6InterfaceProperties.cs
- NetworkAddressChange.cs
- CodeCompiler.cs
- DataBoundControl.cs
- VersionedStream.cs
- SimpleHandlerBuildProvider.cs
- CounterCreationDataCollection.cs
- BindableAttribute.cs
- ReadOnlyDictionary.cs
- WebMessageEncodingElement.cs
- ClientTargetSection.cs
- CharUnicodeInfo.cs
- DataShape.cs
- TextDecoration.cs