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
- NotificationContext.cs
- MD5.cs
- Base64Decoder.cs
- NullableIntAverageAggregationOperator.cs
- BaseValidator.cs
- AdRotator.cs
- RadioButtonFlatAdapter.cs
- BaseAsyncResult.cs
- COM2Properties.cs
- RequestDescription.cs
- DesignerUtils.cs
- MappingMetadataHelper.cs
- ControlAdapter.cs
- SelectedDatesCollection.cs
- ExceptionUtil.cs
- LayeredChannelListener.cs
- BindableAttribute.cs
- PublisherIdentityPermission.cs
- SiteMapNodeItem.cs
- safesecurityhelperavalon.cs
- XmlWrappingWriter.cs
- PathSegmentCollection.cs
- EventInfo.cs
- Point3D.cs
- Trace.cs
- TemplatePartAttribute.cs
- BinaryWriter.cs
- DashStyles.cs
- Input.cs
- TreeNodeEventArgs.cs
- SelectionEditor.cs
- WasAdminWrapper.cs
- TabControl.cs
- DefaultTextStoreTextComposition.cs
- DictionarySurrogate.cs
- TypeNameConverter.cs
- WebServiceClientProxyGenerator.cs
- figurelengthconverter.cs
- AttachedPropertyMethodSelector.cs
- BamlResourceSerializer.cs
- PopupRootAutomationPeer.cs
- CornerRadius.cs
- DllNotFoundException.cs
- SiteMapNodeCollection.cs
- TextRunProperties.cs
- OutputWindow.cs
- SiteMapNodeCollection.cs
- WebSysDefaultValueAttribute.cs
- AuthenticationModulesSection.cs
- ReachDocumentPageSerializer.cs
- NetMsmqSecurity.cs
- XPathChildIterator.cs
- TypeConverterBase.cs
- StylusPointCollection.cs
- SessionStateItemCollection.cs
- GlobalizationSection.cs
- ScriptDescriptor.cs
- RegexCompilationInfo.cs
- SoapInteropTypes.cs
- NameObjectCollectionBase.cs
- HwndProxyElementProvider.cs
- CodeGenerator.cs
- WMIInterop.cs
- Polygon.cs
- ThumbAutomationPeer.cs
- WindowsAuthenticationEventArgs.cs
- DbConnectionHelper.cs
- StringArrayConverter.cs
- NotSupportedException.cs
- InputReportEventArgs.cs
- Cursors.cs
- UndirectedGraph.cs
- TableCellsCollectionEditor.cs
- Form.cs
- PermissionToken.cs
- BindingCompleteEventArgs.cs
- ObjectCacheHost.cs
- DiscardableAttribute.cs
- NamespaceExpr.cs
- EntityDescriptor.cs
- Guid.cs
- CollectionCodeDomSerializer.cs
- Funcletizer.cs
- WarningException.cs
- HelpEvent.cs
- NonSerializedAttribute.cs
- BulletedList.cs
- CompressionTransform.cs
- DesignerCatalogPartChrome.cs
- ColorConverter.cs
- IIS7WorkerRequest.cs
- MimeParameter.cs
- FocusWithinProperty.cs
- SafeNativeMethods.cs
- EpmContentSerializerBase.cs
- DataGridViewMethods.cs
- ComplexType.cs
- RowUpdatingEventArgs.cs
- SplitterPanel.cs
- TextChangedEventArgs.cs