Code:
/ FX-1434 / FX-1434 / 1.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
- DrawingVisualDrawingContext.cs
- AssemblyAttributesGoHere.cs
- InternalResources.cs
- ThreadInterruptedException.cs
- EmptyQuery.cs
- XmlSerializerVersionAttribute.cs
- CallInfo.cs
- StringExpressionSet.cs
- Aggregates.cs
- BitmapEditor.cs
- TCPClient.cs
- XmlHelper.cs
- ListViewInsertionMark.cs
- ObjectListField.cs
- ReadContentAsBinaryHelper.cs
- Substitution.cs
- Stack.cs
- BigInt.cs
- InputDevice.cs
- RelatedPropertyManager.cs
- Color.cs
- GridViewUpdateEventArgs.cs
- WebBrowsableAttribute.cs
- SafeFindHandle.cs
- HandleDictionary.cs
- TimeIntervalCollection.cs
- SafeCoTaskMem.cs
- DesignTimeParseData.cs
- ConsumerConnectionPointCollection.cs
- WebScriptEndpoint.cs
- FlowPosition.cs
- CalendarTable.cs
- Panel.cs
- NavigationFailedEventArgs.cs
- PropertyGridEditorPart.cs
- SQlBooleanStorage.cs
- webbrowsersite.cs
- LinqDataSourceDisposeEventArgs.cs
- TrackingStringDictionary.cs
- UnsafeNativeMethods.cs
- ipaddressinformationcollection.cs
- DrawListViewItemEventArgs.cs
- NonParentingControl.cs
- CapabilitiesSection.cs
- BulletDecorator.cs
- XhtmlBasicLiteralTextAdapter.cs
- ThreadAttributes.cs
- ClickablePoint.cs
- ErrorHandler.cs
- BufferAllocator.cs
- BCryptHashAlgorithm.cs
- DataStreams.cs
- ListViewUpdatedEventArgs.cs
- BitmapEffectInputData.cs
- ClientBuildManager.cs
- DoubleAnimationBase.cs
- TableLayoutSettings.cs
- PkcsUtils.cs
- IDispatchConstantAttribute.cs
- EntityReference.cs
- AccessKeyManager.cs
- SqlNodeTypeOperators.cs
- TextModifier.cs
- AccessText.cs
- XmlEncoding.cs
- ComponentChangingEvent.cs
- DataGridViewColumnDesigner.cs
- EventProvider.cs
- KoreanCalendar.cs
- CodeTypeReference.cs
- ObjectMemberMapping.cs
- UserControlParser.cs
- AddDataControlFieldDialog.cs
- Path.cs
- RenderDataDrawingContext.cs
- FocusWithinProperty.cs
- ModelTreeEnumerator.cs
- DelegatingMessage.cs
- ServiceHttpHandlerFactory.cs
- GenericTextProperties.cs
- MessageBox.cs
- WebPartConnection.cs
- SynchronizationScope.cs
- PeerConnector.cs
- PnrpPermission.cs
- LogArchiveSnapshot.cs
- CodeTypeOfExpression.cs
- CookielessHelper.cs
- __Error.cs
- ListViewInsertedEventArgs.cs
- AuthenticationModuleElement.cs
- MessageQueue.cs
- sqlstateclientmanager.cs
- XmlTextWriter.cs
- ResXBuildProvider.cs
- RenderTargetBitmap.cs
- VariantWrapper.cs
- DocumentApplication.cs
- KerberosSecurityTokenProvider.cs
- RuntimeCompatibilityAttribute.cs