Code:
/ DotNET / DotNET / 8.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
- PageRouteHandler.cs
- AssociationEndMember.cs
- ControlCollection.cs
- DataGridPagingPage.cs
- ApplicationHost.cs
- Accessible.cs
- EventWaitHandleSecurity.cs
- FusionWrap.cs
- XmlAnyElementAttribute.cs
- SoapIncludeAttribute.cs
- MediaEntryAttribute.cs
- SerializationInfo.cs
- IndependentlyAnimatedPropertyMetadata.cs
- __ConsoleStream.cs
- KerberosRequestorSecurityTokenAuthenticator.cs
- CellTreeSimplifier.cs
- FixedSOMContainer.cs
- DistinctQueryOperator.cs
- AnnotationMap.cs
- EntityDataSourceContextCreatingEventArgs.cs
- ACL.cs
- SetIndexBinder.cs
- Encoder.cs
- ApplicationSecurityManager.cs
- RecognitionResult.cs
- _SafeNetHandles.cs
- DocumentViewerAutomationPeer.cs
- WindowProviderWrapper.cs
- BookmarkManager.cs
- QilTernary.cs
- QilInvokeEarlyBound.cs
- ObjectNavigationPropertyMapping.cs
- NamespaceMapping.cs
- DBAsyncResult.cs
- SemanticResolver.cs
- ImplicitInputBrush.cs
- MessageQueueAccessControlEntry.cs
- SegmentInfo.cs
- DbProviderFactories.cs
- DataIdProcessor.cs
- OleDbException.cs
- DataGridViewColumnTypeEditor.cs
- VisualStyleInformation.cs
- Rect3DValueSerializer.cs
- Add.cs
- SQLMoney.cs
- AvTraceDetails.cs
- SqlPersistenceWorkflowInstanceDescription.cs
- InternalPermissions.cs
- Regex.cs
- SkewTransform.cs
- StorageConditionPropertyMapping.cs
- ConfigurationManagerInternal.cs
- BitmapData.cs
- PtsHost.cs
- StringCollection.cs
- BuildProviderCollection.cs
- XXXOnTypeBuilderInstantiation.cs
- RepeaterItemEventArgs.cs
- InstanceBehavior.cs
- NumberFunctions.cs
- MetadataCache.cs
- ListBindingHelper.cs
- ImagingCache.cs
- EditorPartCollection.cs
- TypeToken.cs
- XamlVector3DCollectionSerializer.cs
- securitycriticaldataformultiplegetandset.cs
- UndoManager.cs
- panel.cs
- ProcessThread.cs
- ConstructorExpr.cs
- CopyOnWriteList.cs
- Pkcs7Recipient.cs
- wgx_render.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- BitmapCodecInfo.cs
- SqlInternalConnectionTds.cs
- ItemContainerGenerator.cs
- FileRecordSequence.cs
- WinEventHandler.cs
- XmlSchemaImporter.cs
- DBConcurrencyException.cs
- CompositionAdorner.cs
- UniqueConstraint.cs
- UIElementAutomationPeer.cs
- ServerProtocol.cs
- FormsAuthenticationUserCollection.cs
- ValidationError.cs
- FormViewUpdateEventArgs.cs
- Size3D.cs
- VideoDrawing.cs
- RelatedImageListAttribute.cs
- WindowsHyperlink.cs
- Events.cs
- CodeDirectoryCompiler.cs
- AllMembershipCondition.cs
- DESCryptoServiceProvider.cs
- XmlSchemaAll.cs
- OutputCacheModule.cs