Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / NewItemsContextMenuStrip.cs / 1 / NewItemsContextMenuStrip.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ namespace System.Windows.Forms.Design { using System; using System.Collections.Generic; using System.Text; using System.Collections.Specialized; using System.Windows.Forms; using System.ComponentModel; internal class NewItemsContextMenuStrip : GroupedContextMenuStrip { IComponent component = null; EventHandler onClick = null; bool convertTo = false; IServiceProvider serviceProvider = null; ToolStripItem currentItem; public NewItemsContextMenuStrip(IComponent component, ToolStripItem currentItem, EventHandler onClick, bool convertTo, IServiceProvider serviceProvider) { this.component = component; this.onClick = onClick; this.convertTo = convertTo; this.serviceProvider = serviceProvider; this.currentItem = currentItem; IUIService uis = serviceProvider.GetService(typeof(IUIService)) as IUIService; if (uis != null) { this.Renderer =(ToolStripProfessionalRenderer)uis.Styles["VsRenderer"]; } } protected override void OnOpening(CancelEventArgs e) { this.Groups["StandardList"].Items.Clear(); this.Groups["CustomList"].Items.Clear(); Populated = false; // plumb through the standard and custom items. foreach (ToolStripItem item in ToolStripDesignerUtils.GetStandardItemMenuItems(component, onClick, convertTo)) { this.Groups["StandardList"].Items.Add(item); if (convertTo) { ItemTypeToolStripMenuItem toolItem = item as ItemTypeToolStripMenuItem; if (toolItem != null && currentItem != null && toolItem.ItemType == currentItem.GetType()) { toolItem.Enabled = false; } } } foreach (ToolStripItem item in ToolStripDesignerUtils.GetCustomItemMenuItems(component, onClick, convertTo, serviceProvider)) { this.Groups["CustomList"].Items.Add(item); if (convertTo) { ItemTypeToolStripMenuItem toolItem = item as ItemTypeToolStripMenuItem; if (toolItem != null && currentItem != null && toolItem.ItemType == currentItem.GetType()) { toolItem.Enabled = false; } } } base.OnOpening(e); } // Please refer to VsW: 505199 for more details. We dont want the runtime behavior for this Design Time only DropDown and hence we overide the ProcessDialogKey and // just close the DropDown instead of running through the runtime implementation for RIGHT/LEFT Keys which ends up setting ModalMenuFilter. protected override bool ProcessDialogKey(Keys keyData) { Keys keyCode = (Keys)keyData & Keys.KeyCode; switch (keyCode) { case Keys.Left: case Keys.Right: this.Close(); return true; } return base.ProcessDialogKey(keyData); } } } // 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
- PerspectiveCamera.cs
- ObjectDataSourceStatusEventArgs.cs
- TokenBasedSet.cs
- MailMessageEventArgs.cs
- Rotation3DAnimationUsingKeyFrames.cs
- DateTimeStorage.cs
- SqlNotificationEventArgs.cs
- DataGridItemEventArgs.cs
- EFTableProvider.cs
- RequestContext.cs
- _WinHttpWebProxyDataBuilder.cs
- GatewayDefinition.cs
- WindowsStartMenu.cs
- EmptyElement.cs
- PairComparer.cs
- KeyValueSerializer.cs
- GridViewRow.cs
- ControlBuilderAttribute.cs
- UserControlParser.cs
- CaretElement.cs
- ToolStripItemTextRenderEventArgs.cs
- DocComment.cs
- ProvidersHelper.cs
- SizeConverter.cs
- Accessible.cs
- FlowDocumentReaderAutomationPeer.cs
- httpstaticobjectscollection.cs
- WindowsListViewItemStartMenu.cs
- HtmlForm.cs
- ToolStripSplitButton.cs
- ContainerUtilities.cs
- StrokeNodeOperations2.cs
- NotifyIcon.cs
- MetadataCache.cs
- PermissionSetTriple.cs
- ToolStripContentPanel.cs
- FlowDocumentPaginator.cs
- IntegerValidatorAttribute.cs
- sqlstateclientmanager.cs
- XmlSchemaSimpleType.cs
- MenuStrip.cs
- ControlOperationBehavior.cs
- PageClientProxyGenerator.cs
- FrameSecurityDescriptor.cs
- SmiConnection.cs
- DesignerProperties.cs
- FixedPosition.cs
- IconConverter.cs
- SqlUtil.cs
- ListenDesigner.cs
- ProfileBuildProvider.cs
- XmlEncoding.cs
- TextTreeInsertUndoUnit.cs
- Int32EqualityComparer.cs
- XmlElementList.cs
- TemplateXamlParser.cs
- ValidationPropertyAttribute.cs
- WaitHandleCannotBeOpenedException.cs
- ObjectAssociationEndMapping.cs
- TreeNodeCollection.cs
- SizeConverter.cs
- RewritingSimplifier.cs
- SmiMetaData.cs
- PriorityRange.cs
- MenuItemBinding.cs
- SafeTimerHandle.cs
- ProviderConnectionPointCollection.cs
- SiteMapDataSourceView.cs
- FormsAuthenticationModule.cs
- AdRotatorDesigner.cs
- LinearKeyFrames.cs
- SimplePropertyEntry.cs
- PhonemeConverter.cs
- VisualProxy.cs
- LocalizableAttribute.cs
- TableDetailsRow.cs
- Matrix3DStack.cs
- EmptyControlCollection.cs
- TableLayoutRowStyleCollection.cs
- ResourceContainer.cs
- ProfessionalColors.cs
- EventSchemaTraceListener.cs
- OpCellTreeNode.cs
- XmlUtil.cs
- MessageEnumerator.cs
- ReadOnlyTernaryTree.cs
- TextDocumentView.cs
- SqlUserDefinedAggregateAttribute.cs
- ToolboxService.cs
- Module.cs
- RouteParametersHelper.cs
- TransformedBitmap.cs
- PropertyPath.cs
- Setter.cs
- SerializationSectionGroup.cs
- QueryableDataSourceView.cs
- ConfigurationValues.cs
- PersonalizableAttribute.cs
- FlowNode.cs
- InputChannel.cs