Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ActivatableWorkflowsQueryResult.cs
- FilteredAttributeCollection.cs
- ImportCatalogPart.cs
- DataControlFieldCollection.cs
- AuthorizationRuleCollection.cs
- TaiwanLunisolarCalendar.cs
- SessionPageStatePersister.cs
- DesignerAutoFormatCollection.cs
- AssemblySettingAttributes.cs
- BufferedOutputStream.cs
- LogLogRecord.cs
- RequestCacheManager.cs
- SignatureGenerator.cs
- DurableInstance.cs
- PlatformCulture.cs
- listitem.cs
- FormClosingEvent.cs
- odbcmetadatafactory.cs
- TrustLevelCollection.cs
- fixedPageContentExtractor.cs
- ReadContentAsBinaryHelper.cs
- DataSourceHelper.cs
- unitconverter.cs
- Tablet.cs
- DocumentPageTextView.cs
- CacheMemory.cs
- LicenseProviderAttribute.cs
- AnonymousIdentificationSection.cs
- ComponentResourceKeyConverter.cs
- filewebrequest.cs
- StickyNote.cs
- path.cs
- log.cs
- RSAOAEPKeyExchangeFormatter.cs
- Inflater.cs
- Literal.cs
- NamespaceCollection.cs
- XmlLoader.cs
- Quad.cs
- ScriptReferenceBase.cs
- xmlfixedPageInfo.cs
- CaseInsensitiveHashCodeProvider.cs
- OdbcUtils.cs
- LayoutUtils.cs
- IntersectQueryOperator.cs
- QueueProcessor.cs
- ConvertersCollection.cs
- ToolConsole.cs
- NotImplementedException.cs
- ExternalFile.cs
- RemoteTokenFactory.cs
- StyleSheet.cs
- AdRotatorDesigner.cs
- TextEffectResolver.cs
- HtmlSelect.cs
- TaiwanLunisolarCalendar.cs
- DetailsViewInsertEventArgs.cs
- ClassHandlersStore.cs
- UMPAttributes.cs
- InitializationEventAttribute.cs
- LineServices.cs
- AssemblyBuilder.cs
- ModuleConfigurationInfo.cs
- TextEditorParagraphs.cs
- InternalTypeHelper.cs
- RadioButton.cs
- AdornerDecorator.cs
- UICuesEvent.cs
- CharUnicodeInfo.cs
- DataDocumentXPathNavigator.cs
- ConfigurationValue.cs
- MergablePropertyAttribute.cs
- BindingContext.cs
- FixedTextView.cs
- UnhandledExceptionEventArgs.cs
- Attachment.cs
- RTTrackingProfile.cs
- PageCatalogPart.cs
- DbConnectionFactory.cs
- DrawListViewItemEventArgs.cs
- BamlLocalizationDictionary.cs
- CroppedBitmap.cs
- WebPartConnectionsConnectVerb.cs
- WSSecurityOneDotZeroSendSecurityHeader.cs
- SchemaTableColumn.cs
- TemplateBindingExpressionConverter.cs
- IisTraceWebEventProvider.cs
- ComboBoxAutomationPeer.cs
- DataGridAutoFormat.cs
- TraceListener.cs
- ELinqQueryState.cs
- SimpleHandlerBuildProvider.cs
- ProxyWebPartConnectionCollection.cs
- TargetControlTypeAttribute.cs
- InkPresenterAutomationPeer.cs
- XmlCustomFormatter.cs
- Matrix.cs
- PathFigureCollectionConverter.cs
- DocumentXPathNavigator.cs
- SchemaImporterExtensionElementCollection.cs