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
- XmlTextReaderImplHelpers.cs
- WorkflowIdleBehavior.cs
- CodeGroup.cs
- VarRefManager.cs
- CaseInsensitiveComparer.cs
- ThumbAutomationPeer.cs
- CodeArgumentReferenceExpression.cs
- CurrencyManager.cs
- RegisterResponseInfo.cs
- Renderer.cs
- DocumentPaginator.cs
- InputScope.cs
- httpapplicationstate.cs
- InvalidateEvent.cs
- __Filters.cs
- TogglePatternIdentifiers.cs
- panel.cs
- RSAPKCS1SignatureDeformatter.cs
- DataGridViewMethods.cs
- EntityTransaction.cs
- ReachObjectContext.cs
- DelimitedListTraceListener.cs
- XmlSchemaAppInfo.cs
- Cursor.cs
- UserNamePasswordServiceCredential.cs
- XmlUrlEditor.cs
- ClipboardData.cs
- GlyphTypeface.cs
- DependencyObjectValidator.cs
- SettingsProperty.cs
- LogLogRecord.cs
- ToolStripDropDown.cs
- CodeCatchClauseCollection.cs
- XmlSchemaDocumentation.cs
- PropertyTabAttribute.cs
- Stacktrace.cs
- TreeNodeBinding.cs
- Style.cs
- EdmValidator.cs
- Int32AnimationUsingKeyFrames.cs
- SafeHandle.cs
- FocusChangedEventArgs.cs
- EntitySqlQueryCacheEntry.cs
- COM2AboutBoxPropertyDescriptor.cs
- DateTimeHelper.cs
- DataViewManager.cs
- WinEventHandler.cs
- PagesSection.cs
- UnSafeCharBuffer.cs
- LocatorPart.cs
- TabRenderer.cs
- Wildcard.cs
- SqlConnectionPoolProviderInfo.cs
- PageParser.cs
- QueryInterceptorAttribute.cs
- ConstrainedDataObject.cs
- ImplicitInputBrush.cs
- AudioLevelUpdatedEventArgs.cs
- XmlIlVisitor.cs
- DataSourceCache.cs
- Set.cs
- ContentAlignmentEditor.cs
- bindurihelper.cs
- OSFeature.cs
- ProxyGenerationError.cs
- DigestTraceRecordHelper.cs
- PropertyGroupDescription.cs
- ConnectionPointCookie.cs
- SynchronizedPool.cs
- SqlMethods.cs
- XsltLibrary.cs
- InvalidFilterCriteriaException.cs
- ResponseBodyWriter.cs
- ConfigXmlCDataSection.cs
- TemplateParser.cs
- TrustLevelCollection.cs
- PointUtil.cs
- FrameworkReadOnlyPropertyMetadata.cs
- BooleanExpr.cs
- HostingEnvironmentException.cs
- DeviceSpecificChoice.cs
- FillRuleValidation.cs
- XhtmlBasicCalendarAdapter.cs
- HttpResponse.cs
- Html32TextWriter.cs
- XmlMapping.cs
- XmlAttributeHolder.cs
- TrustSection.cs
- SurrogateSelector.cs
- _NegoStream.cs
- VBCodeProvider.cs
- WCFModelStrings.Designer.cs
- DesigntimeLicenseContext.cs
- ContextProperty.cs
- NullableDecimalMinMaxAggregationOperator.cs
- ShapingWorkspace.cs
- BatchParser.cs
- SiteMapNode.cs
- TransformConverter.cs
- MimeMapping.cs