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
- InstanceValue.cs
- AtomicFile.cs
- ResourceIDHelper.cs
- OpCopier.cs
- CheckBoxRenderer.cs
- EnumType.cs
- SpellCheck.cs
- WindowManager.cs
- AsyncDataRequest.cs
- Cursors.cs
- BasePropertyDescriptor.cs
- ApplicationId.cs
- Utils.cs
- AssemblyInfo.cs
- CompareInfo.cs
- Geometry.cs
- COAUTHINFO.cs
- AssemblyResourceLoader.cs
- RootBuilder.cs
- DebugView.cs
- BaseDataListComponentEditor.cs
- ClickablePoint.cs
- WebPartDeleteVerb.cs
- MemberCollection.cs
- PerspectiveCamera.cs
- ProcessModelInfo.cs
- AnnouncementInnerClient11.cs
- NegotiationTokenProvider.cs
- BindingContext.cs
- StringKeyFrameCollection.cs
- FlowPosition.cs
- SystemResourceHost.cs
- hresults.cs
- InvalidateEvent.cs
- HostedNamedPipeTransportManager.cs
- UserMapPath.cs
- ConstNode.cs
- HyperLinkStyle.cs
- HttpServerUtilityWrapper.cs
- CellLabel.cs
- MsmqIntegrationBindingElement.cs
- CodeArrayCreateExpression.cs
- DocumentViewerAutomationPeer.cs
- AttributeExtensions.cs
- CaretElement.cs
- PersonalizationDictionary.cs
- remotingproxy.cs
- HttpProfileBase.cs
- sqlnorm.cs
- LogLogRecordHeader.cs
- RuleProcessor.cs
- _AcceptOverlappedAsyncResult.cs
- columnmapkeybuilder.cs
- EncryptedPackageFilter.cs
- TileModeValidation.cs
- ActiveXSite.cs
- ConfigXmlCDataSection.cs
- Compensate.cs
- MenuRenderer.cs
- ProtectedConfiguration.cs
- _DynamicWinsockMethods.cs
- DependentList.cs
- VarInfo.cs
- ClientConfigurationSystem.cs
- ArrayExtension.cs
- XmlParserContext.cs
- WsatAdminException.cs
- DataGridRow.cs
- Brushes.cs
- CompiledQuery.cs
- PropertyItem.cs
- LocationUpdates.cs
- StylusPointPropertyInfoDefaults.cs
- PartManifestEntry.cs
- SafeFileHandle.cs
- TempEnvironment.cs
- CodeSnippetExpression.cs
- ReliableMessagingVersionConverter.cs
- ViewGenResults.cs
- DefaultAsyncDataDispatcher.cs
- WindowInteropHelper.cs
- GPRECT.cs
- XsltException.cs
- StateChangeEvent.cs
- PropertyPathConverter.cs
- GPPOINT.cs
- StyleReferenceConverter.cs
- WinCategoryAttribute.cs
- AdRotator.cs
- NullReferenceException.cs
- RowToParametersTransformer.cs
- SolidColorBrush.cs
- RangeValueProviderWrapper.cs
- FunctionDescription.cs
- ByteStreamMessageEncoderFactory.cs
- ViewPort3D.cs
- IntegrationExceptionEventArgs.cs
- Rule.cs
- ExternalFile.cs
- LinqDataSourceInsertEventArgs.cs