Code:
/ DotNET / DotNET / 8.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
- DeviceSpecificDialogCachedState.cs
- Transform3D.cs
- ToolStripGrip.cs
- XmlMapping.cs
- LinqDataSourceContextData.cs
- XmlRootAttribute.cs
- TextSegment.cs
- XmlSchemaAnnotated.cs
- DynamicMethod.cs
- BmpBitmapDecoder.cs
- SqlErrorCollection.cs
- DefaultSerializationProviderAttribute.cs
- TreeViewImageKeyConverter.cs
- LostFocusEventManager.cs
- Point3D.cs
- ProxySimple.cs
- SelectionEditingBehavior.cs
- SafeTokenHandle.cs
- EntityDataSourceDataSelectionPanel.designer.cs
- infer.cs
- EndpointDispatcher.cs
- WorkingDirectoryEditor.cs
- ToolStripSplitButton.cs
- LowerCaseStringConverter.cs
- OleDbTransaction.cs
- Double.cs
- DrawToolTipEventArgs.cs
- DbConnectionInternal.cs
- HttpPostProtocolReflector.cs
- ToolStripSeparatorRenderEventArgs.cs
- DataGridViewColumnEventArgs.cs
- HtmlInputFile.cs
- TaiwanLunisolarCalendar.cs
- ActivationServices.cs
- SerializationInfoEnumerator.cs
- CallInfo.cs
- JsonWriter.cs
- ProfilePropertyNameValidator.cs
- Localizer.cs
- WorkflowTransactionOptions.cs
- JumpList.cs
- SecurityPolicySection.cs
- TypeConverterMarkupExtension.cs
- WebBrowserProgressChangedEventHandler.cs
- _DomainName.cs
- SessionStateSection.cs
- WebRequestModuleElement.cs
- CallTemplateAction.cs
- HttpException.cs
- AdapterUtil.cs
- ColorAnimation.cs
- SQLBytesStorage.cs
- ServiceRouteHandler.cs
- ITreeGenerator.cs
- ValueType.cs
- SystemException.cs
- DictionaryMarkupSerializer.cs
- AdornerPresentationContext.cs
- SQLByte.cs
- OleDbReferenceCollection.cs
- SoapInteropTypes.cs
- ProxyWebPartConnectionCollection.cs
- PropertyEntry.cs
- SafeNativeMethods.cs
- ValidationHelper.cs
- ArrangedElement.cs
- RenameRuleObjectDialog.Designer.cs
- QilTernary.cs
- WebControlParameterProxy.cs
- Duration.cs
- XpsInterleavingPolicy.cs
- VirtualizedContainerService.cs
- GroupJoinQueryOperator.cs
- WebResourceAttribute.cs
- RowUpdatedEventArgs.cs
- CompressionTransform.cs
- ModelChangedEventArgsImpl.cs
- FastPropertyAccessor.cs
- NotifyParentPropertyAttribute.cs
- ObjectQueryState.cs
- MDIControlStrip.cs
- DefaultShape.cs
- COM2ComponentEditor.cs
- PackageDigitalSignature.cs
- BaseCollection.cs
- LeaseManager.cs
- PageSettings.cs
- PageAsyncTaskManager.cs
- DataGridItemCollection.cs
- PathGradientBrush.cs
- ActivityInstanceMap.cs
- SmiContextFactory.cs
- Graph.cs
- RepeaterCommandEventArgs.cs
- ApplicationCommands.cs
- IDQuery.cs
- SecurityNegotiationException.cs
- AddInPipelineAttributes.cs
- DetailsViewModeEventArgs.cs
- WindowInteractionStateTracker.cs