Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
- Duration.cs
- XmlSchemaSequence.cs
- DocumentViewer.cs
- DataBindingHandlerAttribute.cs
- CommonDialog.cs
- ResourceManagerWrapper.cs
- FunctionCommandText.cs
- UnionCqlBlock.cs
- Publisher.cs
- Padding.cs
- XmlObjectSerializerReadContext.cs
- ExpressionBuilderContext.cs
- SafeProcessHandle.cs
- MemberRelationshipService.cs
- SwitchAttribute.cs
- PipelineModuleStepContainer.cs
- DataGridRow.cs
- SystemPens.cs
- ClientFormsIdentity.cs
- FontCollection.cs
- EntitySqlQueryState.cs
- PropertyGeneratedEventArgs.cs
- CodeTypeParameter.cs
- SortDescriptionCollection.cs
- ConstantSlot.cs
- RequestNavigateEventArgs.cs
- Component.cs
- EmptyCollection.cs
- StreamSecurityUpgradeInitiatorAsyncResult.cs
- XmlQualifiedNameTest.cs
- AppDomainFactory.cs
- PerformanceCounterPermission.cs
- SpellerHighlightLayer.cs
- SqlClientFactory.cs
- DataGridViewSelectedRowCollection.cs
- Buffer.cs
- AuthorizationRule.cs
- RewritingSimplifier.cs
- AppDomainProtocolHandler.cs
- CounterCreationData.cs
- RangeEnumerable.cs
- MarkupCompilePass2.cs
- SEHException.cs
- GacUtil.cs
- SortFieldComparer.cs
- ApplicationFileParser.cs
- COMException.cs
- CallTemplateAction.cs
- OperationCanceledException.cs
- CallSite.cs
- TypographyProperties.cs
- PathFigureCollection.cs
- SkewTransform.cs
- ClientScriptManager.cs
- ApplicationInfo.cs
- TextProviderWrapper.cs
- BitmapFrame.cs
- ExecutionEngineException.cs
- SystemUnicastIPAddressInformation.cs
- CalendarTable.cs
- ProvidePropertyAttribute.cs
- Graph.cs
- XmlUtil.cs
- OracleCommandSet.cs
- ObjectIDGenerator.cs
- ObjectReferenceStack.cs
- PagesChangedEventArgs.cs
- BindingListCollectionView.cs
- ArglessEventHandlerProxy.cs
- ReaderContextStackData.cs
- InstanceDataCollection.cs
- MenuEventArgs.cs
- ToolStripCustomTypeDescriptor.cs
- InstanceOwner.cs
- ToolStripRenderEventArgs.cs
- NativeMethods.cs
- ValidationService.cs
- ActivityStateQuery.cs
- SetterBase.cs
- KeyedHashAlgorithm.cs
- XmlNavigatorFilter.cs
- ButtonFieldBase.cs
- ContentPlaceHolder.cs
- AgileSafeNativeMemoryHandle.cs
- BinaryObjectReader.cs
- ProtocolsConfigurationHandler.cs
- ImageIndexEditor.cs
- WebPartTransformerAttribute.cs
- BinaryUtilClasses.cs
- BitmapEffectInput.cs
- ExtensibleClassFactory.cs
- XsltArgumentList.cs
- ZipIOExtraField.cs
- XmlnsCompatibleWithAttribute.cs
- SettingsPropertyCollection.cs
- WsdlInspector.cs
- GreenMethods.cs
- SqlNodeAnnotations.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- TransformerConfigurationWizardBase.cs