Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / ContextMenuStrip.cs / 1305376 / ContextMenuStrip.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Windows.Forms {
using System;
using System.ComponentModel;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Security;
using System.Security.Permissions;
/// this class is just a conceptual wrapper around ToolStripDropDownMenu.
[
ComVisible(true),
ClassInterface(ClassInterfaceType.AutoDispatch),
DefaultEvent("Opening"),
SRDescription(SR.DescriptionContextMenuStrip)
]
public class ContextMenuStrip : ToolStripDropDownMenu {
///
/// Summary of ContextMenuStrip.
///
public ContextMenuStrip(IContainer container) : base() {
// this constructor ensures ContextMenuStrip is disposed properly since its not parented to the form.
if (container == null) {
throw new ArgumentNullException("container");
}
container.Add(this);
}
public ContextMenuStrip(){
}
protected override void Dispose(bool disposing) {
base.Dispose(disposing);
}
[
Browsable(false),
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
SRDescription(SR.ContextMenuStripSourceControlDescr)
]
public Control SourceControl {
[UIPermission(SecurityAction.Demand, Window=UIPermissionWindow.AllWindows)]
get {
return SourceControlInternal;
}
}
// minimal Clone implementation for DGV support only.
internal ContextMenuStrip Clone() {
// VERY limited support for cloning.
ContextMenuStrip contextMenuStrip = new ContextMenuStrip();
// copy over events
contextMenuStrip.Events.AddHandlers(this.Events);
contextMenuStrip.AutoClose = AutoClose;
contextMenuStrip.AutoSize = AutoSize;
contextMenuStrip.Bounds = Bounds;
contextMenuStrip.ImageList = ImageList;
contextMenuStrip.ShowCheckMargin = ShowCheckMargin;
contextMenuStrip.ShowImageMargin = ShowImageMargin;
// copy over relevant properties
for (int i = 0; i < Items.Count; i++) {
ToolStripItem item = Items[i];
if (item is ToolStripSeparator) {
contextMenuStrip.Items.Add(new ToolStripSeparator());
}
else if (item is ToolStripMenuItem) {
ToolStripMenuItem menuItem = item as ToolStripMenuItem;
contextMenuStrip.Items.Add(menuItem.Clone());
}
}
return contextMenuStrip;
}
// internal overload so we know whether or not to show mnemonics.
internal void ShowInternal(Control source, Point location, bool isKeyboardActivated) {
Show(source, location);
// if we were activated by keyboard - show mnemonics.
if (isKeyboardActivated) {
ToolStripManager.ModalMenuFilter.Instance.ShowUnderlines = true;
}
}
internal void ShowInTaskbar(int x, int y) {
// we need to make ourselves a topmost window
WorkingAreaConstrained = false;
Rectangle bounds = CalculateDropDownLocation(new Point(x,y), ToolStripDropDownDirection.AboveLeft);
Rectangle screenBounds = Screen.FromRectangle(bounds).Bounds;
if (bounds.Y < screenBounds.Y) {
bounds = CalculateDropDownLocation(new Point(x,y), ToolStripDropDownDirection.BelowLeft);
}
else if (bounds.X < screenBounds.X) {
bounds = CalculateDropDownLocation(new Point(x,y), ToolStripDropDownDirection.AboveRight);
}
bounds = WindowsFormsUtils.ConstrainToBounds(screenBounds, bounds);
Show(bounds.X, bounds.Y);
}
protected override void SetVisibleCore(bool visible) {
if (!visible) {
WorkingAreaConstrained = true;
}
base.SetVisibleCore(visible);
}
}
}
// 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
- DataRowCollection.cs
- Task.cs
- HttpRuntimeSection.cs
- HostingPreferredMapPath.cs
- Setter.cs
- DocumentPaginator.cs
- CodeParameterDeclarationExpression.cs
- EntityClientCacheKey.cs
- Win32MouseDevice.cs
- FormViewUpdatedEventArgs.cs
- SmtpNegotiateAuthenticationModule.cs
- DrawingGroupDrawingContext.cs
- PageVisual.cs
- ReflectionHelper.cs
- KnownColorTable.cs
- DataFormats.cs
- SortedList.cs
- DocumentXPathNavigator.cs
- ReadWriteObjectLock.cs
- WindowsStreamSecurityElement.cs
- SocketElement.cs
- DispatcherSynchronizationContext.cs
- ViewBox.cs
- TemplatedWizardStep.cs
- Serializer.cs
- CssStyleCollection.cs
- ProxySimple.cs
- WindowsAltTab.cs
- ScriptResourceHandler.cs
- AssemblyAttributesGoHere.cs
- WindowsAltTab.cs
- ThrowHelper.cs
- ConnectionInterfaceCollection.cs
- RadioButtonRenderer.cs
- ItemCheckedEvent.cs
- FixUpCollection.cs
- FormatterServices.cs
- Calendar.cs
- SqlUtils.cs
- CodeComment.cs
- AggregatePushdown.cs
- SchemaElement.cs
- EmissiveMaterial.cs
- ActiveDocumentEvent.cs
- AxisAngleRotation3D.cs
- XPathItem.cs
- ArrayHelper.cs
- WorkflowItemPresenter.cs
- XPathParser.cs
- PriorityBinding.cs
- TokenBasedSet.cs
- ElementMarkupObject.cs
- TabPage.cs
- PaintValueEventArgs.cs
- TrustSection.cs
- Grid.cs
- GenericEnumerator.cs
- IMembershipProvider.cs
- XmlSchemaImport.cs
- SequenceDesigner.cs
- TrustSection.cs
- CreateUserWizard.cs
- BeginStoryboard.cs
- SearchExpression.cs
- URLMembershipCondition.cs
- OrderPreservingMergeHelper.cs
- LassoSelectionBehavior.cs
- EntityTypeEmitter.cs
- TextEndOfSegment.cs
- RSAPKCS1SignatureFormatter.cs
- ChangePassword.cs
- GeometryModel3D.cs
- SingleKeyFrameCollection.cs
- TrackingLocationCollection.cs
- HttpDictionary.cs
- DBDataPermission.cs
- WebException.cs
- LabelDesigner.cs
- WebBrowserNavigatedEventHandler.cs
- BindableAttribute.cs
- SimpleFileLog.cs
- XPathParser.cs
- BaseCodePageEncoding.cs
- ResolveNameEventArgs.cs
- HierarchicalDataSourceControl.cs
- CompilerParameters.cs
- ToolStripContainer.cs
- SqlLiftWhereClauses.cs
- CookieParameter.cs
- DataGridViewHeaderCell.cs
- PartialTrustVisibleAssemblyCollection.cs
- cache.cs
- BuildProviderAppliesToAttribute.cs
- MultipartIdentifier.cs
- DataGridViewRowPostPaintEventArgs.cs
- BitmapEffectInputConnector.cs
- ValidatorUtils.cs
- XmlSchemaAttributeGroup.cs
- TreeViewItem.cs
- MorphHelper.cs