Code:
/ FX-1434 / FX-1434 / 1.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
- DoubleLink.cs
- Assert.cs
- PresentationAppDomainManager.cs
- DisplayToken.cs
- ListBoxItemWrapperAutomationPeer.cs
- SerializationFieldInfo.cs
- TextElement.cs
- ChangeNode.cs
- TypeDelegator.cs
- Rotation3DAnimationBase.cs
- followingsibling.cs
- ListViewHitTestInfo.cs
- XamlSerializationHelper.cs
- OptimizerPatterns.cs
- FormsAuthentication.cs
- InstanceCreationEditor.cs
- Translator.cs
- UrlAuthorizationModule.cs
- HttpProfileGroupBase.cs
- RedistVersionInfo.cs
- Compiler.cs
- SHA256CryptoServiceProvider.cs
- DocumentReference.cs
- SessionIDManager.cs
- LinearKeyFrames.cs
- BufferModesCollection.cs
- XamlSerializationHelper.cs
- AnimationLayer.cs
- LineMetrics.cs
- CalloutQueueItem.cs
- SurrogateSelector.cs
- XmlUtf8RawTextWriter.cs
- TypeConverterValueSerializer.cs
- DictionaryMarkupSerializer.cs
- SqlInternalConnectionTds.cs
- ImageListStreamer.cs
- WinInetCache.cs
- FixedSOMImage.cs
- HttpFileCollectionWrapper.cs
- XMLUtil.cs
- SignatureHelper.cs
- PathGradientBrush.cs
- PenLineJoinValidation.cs
- WebPartZoneBase.cs
- DependencyPropertyValueSerializer.cs
- RemotingSurrogateSelector.cs
- ClientUrlResolverWrapper.cs
- X509RawDataKeyIdentifierClause.cs
- AppSettingsReader.cs
- QilXmlReader.cs
- XMLDiffLoader.cs
- GroupBoxAutomationPeer.cs
- TreeChangeInfo.cs
- FlowSwitchLink.cs
- ZipIOExtraFieldPaddingElement.cs
- TableParaClient.cs
- WindowsScrollBar.cs
- FontNamesConverter.cs
- Substitution.cs
- ObjectDataSourceView.cs
- TypeSystem.cs
- DataContractSerializerServiceBehavior.cs
- AuthenticationModuleElement.cs
- Matrix3DConverter.cs
- Message.cs
- X509RawDataKeyIdentifierClause.cs
- PointLightBase.cs
- SafeCancelMibChangeNotify.cs
- DataRowChangeEvent.cs
- XPathExpr.cs
- AdapterDictionary.cs
- FunctionMappingTranslator.cs
- StreamWriter.cs
- TableLayoutStyleCollection.cs
- DescendantQuery.cs
- Annotation.cs
- DataListCommandEventArgs.cs
- ObjectDataSourceStatusEventArgs.cs
- TemplateParser.cs
- CustomMenuItemCollection.cs
- DataGridViewRowsAddedEventArgs.cs
- _Win32.cs
- OrderByLifter.cs
- LocalizabilityAttribute.cs
- XamlSerializer.cs
- HMACMD5.cs
- DoubleCollectionConverter.cs
- ComponentEditorPage.cs
- DecimalConverter.cs
- ProcessHostServerConfig.cs
- RoutingExtension.cs
- AppModelKnownContentFactory.cs
- EllipticalNodeOperations.cs
- AllMembershipCondition.cs
- RenamedEventArgs.cs
- CollectionViewGroupRoot.cs
- CompilationSection.cs
- FileLevelControlBuilderAttribute.cs
- MultipleViewPattern.cs
- TransformPatternIdentifiers.cs