Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / WinForms / Managed / System / WinForms / ContextMenuStrip.cs / 1 / 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. //------------------------------------------------------------------------------ //// 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
- ParameterElementCollection.cs
- HtmlInputImage.cs
- ElementUtil.cs
- DoubleAverageAggregationOperator.cs
- DataView.cs
- DateTimeFormatInfoScanner.cs
- TreeView.cs
- Char.cs
- StylusShape.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- EllipseGeometry.cs
- ScrollContentPresenter.cs
- PrimitiveSchema.cs
- TextDecoration.cs
- StaticResourceExtension.cs
- MimeReflector.cs
- LambdaCompiler.ControlFlow.cs
- ReadOnlyHierarchicalDataSourceView.cs
- RuleSetCollection.cs
- ObjectConverter.cs
- ToolboxItemAttribute.cs
- XmlDocumentType.cs
- AbsoluteQuery.cs
- TraceHandler.cs
- QilName.cs
- SmiGettersStream.cs
- XmlCompatibilityReader.cs
- x509utils.cs
- SmtpNegotiateAuthenticationModule.cs
- XmlDocument.cs
- RawKeyboardInputReport.cs
- DataSpaceManager.cs
- SmtpFailedRecipientsException.cs
- Compiler.cs
- xamlnodes.cs
- ApplicationTrust.cs
- HtmlEmptyTagControlBuilder.cs
- MediaPlayer.cs
- EncryptedReference.cs
- Transform3D.cs
- entityreference_tresulttype.cs
- DateTimePickerDesigner.cs
- DesignerView.xaml.cs
- PartManifestEntry.cs
- CalloutQueueItem.cs
- Rect.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- WSDualHttpBindingElement.cs
- ArrayList.cs
- BooleanSwitch.cs
- StreamingContext.cs
- FragmentQueryProcessor.cs
- XmlPreloadedResolver.cs
- IndependentAnimationStorage.cs
- UIAgentAsyncParams.cs
- FieldNameLookup.cs
- Margins.cs
- ObjectDataSourceSelectingEventArgs.cs
- UIElement.cs
- EventNotify.cs
- PropertyIdentifier.cs
- XmlCDATASection.cs
- COM2PictureConverter.cs
- ChangePassword.cs
- SafeFileHandle.cs
- ConnectionOrientedTransportManager.cs
- DbMetaDataFactory.cs
- CharacterString.cs
- TrustManagerMoreInformation.cs
- TextFormatterHost.cs
- CryptoApi.cs
- GridItemCollection.cs
- WindowPatternIdentifiers.cs
- Delegate.cs
- WsdlBuildProvider.cs
- NativeRightsManagementAPIsStructures.cs
- ValueTypeFixupInfo.cs
- ToolBarPanel.cs
- AnnotationHighlightLayer.cs
- UnitySerializationHolder.cs
- ControlFilterExpression.cs
- HttpStaticObjectsCollectionWrapper.cs
- IRCollection.cs
- ServiceEndpointElementCollection.cs
- XmlSchemaException.cs
- ErrorHandlingReceiver.cs
- NotificationContext.cs
- SemanticBasicElement.cs
- WebBrowserHelper.cs
- OlePropertyStructs.cs
- SemaphoreSlim.cs
- MenuItem.cs
- ReservationCollection.cs
- ResourceReferenceExpression.cs
- RouteUrlExpressionBuilder.cs
- FormatterServices.cs
- FlowNode.cs
- AttributeProviderAttribute.cs
- InputReportEventArgs.cs
- CustomDictionarySources.cs