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
- VariableDesigner.xaml.cs
- GregorianCalendar.cs
- WorkflowServiceInstance.cs
- ModelItemCollection.cs
- CodeBlockBuilder.cs
- TextEditorSelection.cs
- ScriptControl.cs
- TabControlToolboxItem.cs
- ComponentSerializationService.cs
- IntegerFacetDescriptionElement.cs
- XmlNavigatorStack.cs
- RenderContext.cs
- DropSource.cs
- SectionInput.cs
- OletxResourceManager.cs
- CollectionCodeDomSerializer.cs
- RawTextInputReport.cs
- DataGridColumnDropSeparator.cs
- MediaElement.cs
- Wizard.cs
- XmlQueryRuntime.cs
- StrongNamePublicKeyBlob.cs
- ConnectionManagementElementCollection.cs
- MetadataPropertyAttribute.cs
- TextEditorTables.cs
- Win32Native.cs
- AttributedMetaModel.cs
- SynchronizedDispatch.cs
- ToolStripCollectionEditor.cs
- ApplicationBuildProvider.cs
- EntitySqlQueryBuilder.cs
- ProcessModuleCollection.cs
- ImageAttributes.cs
- __FastResourceComparer.cs
- HttpWebRequest.cs
- WindowsListViewScroll.cs
- controlskin.cs
- RecordManager.cs
- CheckBox.cs
- HybridObjectCache.cs
- Decimal.cs
- Brushes.cs
- ECDsaCng.cs
- HttpContextBase.cs
- ObjectView.cs
- XsdValidatingReader.cs
- OperationResponse.cs
- WebPartCloseVerb.cs
- DesignerLoader.cs
- __ConsoleStream.cs
- ByteFacetDescriptionElement.cs
- CanonicalFontFamilyReference.cs
- UpWmlPageAdapter.cs
- EntityDesignerDataSourceView.cs
- ServiceNotStartedException.cs
- DateTimeAutomationPeer.cs
- VectorConverter.cs
- Process.cs
- NativeMethods.cs
- Property.cs
- RetriableClipboard.cs
- CustomTypeDescriptor.cs
- MenuItemAutomationPeer.cs
- FileUpload.cs
- LinkButton.cs
- TextDecorations.cs
- _LoggingObject.cs
- IntegerValidatorAttribute.cs
- UIElementIsland.cs
- HtmlInputSubmit.cs
- RequestContext.cs
- DynamicResourceExtension.cs
- PasswordDeriveBytes.cs
- BoundPropertyEntry.cs
- AsyncResult.cs
- WorkflowItemPresenter.cs
- OracleBFile.cs
- IOException.cs
- SessionIDManager.cs
- CannotUnloadAppDomainException.cs
- DocumentSequenceHighlightLayer.cs
- ComPlusThreadInitializer.cs
- InternalBufferOverflowException.cs
- XmlException.cs
- ServerValidateEventArgs.cs
- ExpressionPrefixAttribute.cs
- Misc.cs
- DataGridViewCellEventArgs.cs
- KeyGestureValueSerializer.cs
- SoapAttributeAttribute.cs
- ObservableCollectionDefaultValueFactory.cs
- ControlCollection.cs
- HtmlEmptyTagControlBuilder.cs
- ParameterCollection.cs
- DataGridColumnReorderingEventArgs.cs
- Material.cs
- NestedContainer.cs
- SimpleTypeResolver.cs
- HostingEnvironment.cs
- ColumnMap.cs