Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DefaultSerializationProviderAttribute.cs
- UrlMappingCollection.cs
- PropertyBuilder.cs
- DockPatternIdentifiers.cs
- ObjectDataSourceEventArgs.cs
- ComponentChangingEvent.cs
- SchemaDeclBase.cs
- HybridObjectCache.cs
- SpellerError.cs
- SpeakCompletedEventArgs.cs
- XamlPoint3DCollectionSerializer.cs
- SignedXml.cs
- KnowledgeBase.cs
- WindowsTab.cs
- SelectionRange.cs
- WindowsSlider.cs
- WindowsListViewSubItem.cs
- TextServicesPropertyRanges.cs
- EventManager.cs
- ChannelServices.cs
- RegistrationProxy.cs
- SoapReflectionImporter.cs
- WorkflowPersistenceService.cs
- FactoryMaker.cs
- MultipleCopiesCollection.cs
- MatrixTransform.cs
- RenamedEventArgs.cs
- ConfigDefinitionUpdates.cs
- EncryptedXml.cs
- GlobalAllocSafeHandle.cs
- CreateUserErrorEventArgs.cs
- ConfigurationValue.cs
- WebPartTransformerAttribute.cs
- InheritanceContextHelper.cs
- BindingExpressionBase.cs
- DesignerMetadata.cs
- AspNetSynchronizationContext.cs
- CustomCredentialPolicy.cs
- ProfileParameter.cs
- ListItemViewControl.cs
- ListControlActionList.cs
- AnnotationResourceCollection.cs
- Input.cs
- PointAnimation.cs
- Merger.cs
- DesignerInterfaces.cs
- InkCanvasInnerCanvas.cs
- GacUtil.cs
- basecomparevalidator.cs
- Separator.cs
- ExpandCollapsePattern.cs
- Activity.cs
- AuthenticationSection.cs
- XmlRootAttribute.cs
- x509utils.cs
- DocumentGridPage.cs
- DataGridViewHeaderCell.cs
- DbProviderServices.cs
- TreeViewDataItemAutomationPeer.cs
- ArgumentValueSerializer.cs
- HtmlFormAdapter.cs
- InvalidPrinterException.cs
- Int64AnimationBase.cs
- DataGridViewRowsAddedEventArgs.cs
- BitmapInitialize.cs
- StackBuilderSink.cs
- RenderOptions.cs
- ThreadStaticAttribute.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- MappingItemCollection.cs
- dataSvcMapFileLoader.cs
- EditingScopeUndoUnit.cs
- XmlNamespaceMapping.cs
- SafeNativeMethodsMilCoreApi.cs
- WebPartUserCapability.cs
- LostFocusEventManager.cs
- SingleAnimation.cs
- ResolveNameEventArgs.cs
- Timer.cs
- SimpleFieldTemplateUserControl.cs
- DefaultPropertiesToSend.cs
- DockPatternIdentifiers.cs
- SqlError.cs
- UnsafeNativeMethodsCLR.cs
- MessageTransmitTraceRecord.cs
- FunctionNode.cs
- UndirectedGraph.cs
- FontWeight.cs
- HelpEvent.cs
- CodeTypeDeclarationCollection.cs
- ViewStateException.cs
- ZipIOExtraFieldElement.cs
- OdbcCommand.cs
- HostSecurityManager.cs
- SqlProviderServices.cs
- RegisteredHiddenField.cs
- SurrogateDataContract.cs
- AuthenticationManager.cs
- Transform3D.cs
- XmlNavigatorStack.cs