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
- RelatedCurrencyManager.cs
- BufferBuilder.cs
- ToolStripRenderer.cs
- FormViewDeletedEventArgs.cs
- FormsAuthenticationUserCollection.cs
- BatchStream.cs
- DataFormat.cs
- SecurityUtils.cs
- MediaElement.cs
- MarkupWriter.cs
- XsltConvert.cs
- Dynamic.cs
- RecordBuilder.cs
- DataQuery.cs
- ImageField.cs
- DbConnectionPoolGroupProviderInfo.cs
- DataServiceExpressionVisitor.cs
- ButtonBase.cs
- DrawingContextDrawingContextWalker.cs
- TransportChannelFactory.cs
- x509utils.cs
- SubpageParagraph.cs
- Int64Storage.cs
- ButtonField.cs
- DataTable.cs
- DateTimeConverter.cs
- WebPartMinimizeVerb.cs
- AutomationPattern.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- _RequestCacheProtocol.cs
- PictureBox.cs
- GreaterThanOrEqual.cs
- _RequestCacheProtocol.cs
- _Rfc2616CacheValidators.cs
- UpdateTracker.cs
- ButtonChrome.cs
- WebPartConnectionsCloseVerb.cs
- PartialArray.cs
- AsynchronousChannelMergeEnumerator.cs
- CacheVirtualItemsEvent.cs
- TreeViewEvent.cs
- UserNamePasswordValidator.cs
- DefaultHttpHandler.cs
- UndirectedGraph.cs
- Membership.cs
- SecurityRuntime.cs
- ToolTip.cs
- CqlWriter.cs
- DbSourceCommand.cs
- DesignerAutoFormatStyle.cs
- OdbcConnectionPoolProviderInfo.cs
- FormatConvertedBitmap.cs
- RemoteWebConfigurationHost.cs
- MarshalByRefObject.cs
- QueryResponse.cs
- TextAdaptor.cs
- DBProviderConfigurationHandler.cs
- EntityDataSourceValidationException.cs
- MemberAccessException.cs
- AutomationPatternInfo.cs
- WebPartDeleteVerb.cs
- DataGridViewCellEventArgs.cs
- ConfigXmlComment.cs
- UInt64.cs
- WhiteSpaceTrimStringConverter.cs
- SmtpClient.cs
- SaveFileDialog.cs
- SecUtil.cs
- XomlCompilerResults.cs
- DataColumn.cs
- OracleException.cs
- Mapping.cs
- HtmlEmptyTagControlBuilder.cs
- TextEvent.cs
- KeyValueInternalCollection.cs
- InputMethodStateTypeInfo.cs
- LabelLiteral.cs
- ProcessInfo.cs
- Util.cs
- OutputCacheSettings.cs
- WindowsSysHeader.cs
- WebPartRestoreVerb.cs
- UserControlBuildProvider.cs
- SqlConnectionPoolProviderInfo.cs
- IPCCacheManager.cs
- AuthenticationModulesSection.cs
- CellConstantDomain.cs
- PrivateFontCollection.cs
- Int16Animation.cs
- PerformanceCounterPermission.cs
- EventLogTraceListener.cs
- TextOnlyOutput.cs
- ADRole.cs
- ConfigurationSectionCollection.cs
- NumericUpDown.cs
- baseshape.cs
- HttpCacheVaryByContentEncodings.cs
- CapiHashAlgorithm.cs
- TextEvent.cs
- HuffmanTree.cs