Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / ToolStripMenuItemCodeDomSerializer.cs / 1 / ToolStripMenuItemCodeDomSerializer.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="System.Windows.Forms.Design.ToolStripMenuItemCodeDomSerializer..ctor()")] namespace System.Windows.Forms.Design { using System; using System.Diagnostics; using System.CodeDom; using System.ComponentModel; using System.ComponentModel.Design; using System.ComponentModel.Design.Serialization; ////// The Reason for having a CustomSerializer for ToolStripMenuItem is the existance of Dummy ToolStripMenuItem for ContextMenuStrips. /// We add this Dummy ToolStripMenuItem on the "Non Site" ToolStrip to Host the DropDown which facilitates the entry of New MenuItems. /// These items are then added to the ContextMenuStrip that we are designing. /// But we dont want the Dummy ToolStripMenuItem to Serialize and hence the need for this Custom Serializer. /// internal class ToolStripMenuItemCodeDomSerializer : System.ComponentModel.Design.Serialization.CodeDomSerializer { ////// We implement this for the abstract method on CodeDomSerializer. /// public override object Deserialize(IDesignerSerializationManager manager, object codeObject) { return GetBaseSerializer(manager).Deserialize(manager, codeObject); } ////// This is a small helper method that returns the serializer for base Class /// private CodeDomSerializer GetBaseSerializer(IDesignerSerializationManager manager) { return (CodeDomSerializer)manager.GetSerializer(typeof(Component), typeof(CodeDomSerializer)); } ////// /// We implement this for the abstract method on CodeDomSerializer. This method /// takes an object graph, and serializes the object into CodeDom elements. /// public override object Serialize(IDesignerSerializationManager manager, object value) { ToolStripMenuItem item = value as ToolStripMenuItem; ToolStrip parent = item.GetCurrentParent() as ToolStrip; //Dont Serialize if we are Dummy Item ... if ((item != null) && !(item.IsOnDropDown) && (parent != null) && (parent .Site == null)) { //dont serialize anything... return null; } else { CodeDomSerializer baseSerializer = (CodeDomSerializer)manager.GetSerializer(typeof(ImageList).BaseType, typeof(CodeDomSerializer)); return baseSerializer.Serialize(manager, value); } } } } // 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
- XmlWellformedWriter.cs
- ProfileSettings.cs
- SqlWebEventProvider.cs
- MatrixTransform3D.cs
- SmtpFailedRecipientsException.cs
- KnownBoxes.cs
- AnchoredBlock.cs
- BindingListCollectionView.cs
- TableDetailsRow.cs
- TemplateField.cs
- XamlTreeBuilderBamlRecordWriter.cs
- TaiwanLunisolarCalendar.cs
- StrictAndMessageFilter.cs
- ValueUnavailableException.cs
- Underline.cs
- QuaternionAnimationBase.cs
- XPathArrayIterator.cs
- __Filters.cs
- WebSysDisplayNameAttribute.cs
- PackUriHelper.cs
- EdmItemCollection.OcAssemblyCache.cs
- XPathItem.cs
- RemotingHelper.cs
- ReferencedAssembly.cs
- Int16Converter.cs
- DeclarativeCatalogPartDesigner.cs
- DynamicMetaObjectBinder.cs
- TreeViewHitTestInfo.cs
- OneOf.cs
- AssertHelper.cs
- XmlMessageFormatter.cs
- CssTextWriter.cs
- WebPartChrome.cs
- TextBoxAutoCompleteSourceConverter.cs
- XPathSingletonIterator.cs
- PathData.cs
- BridgeDataRecord.cs
- RecordBuilder.cs
- PipelineComponent.cs
- PermissionListSet.cs
- SQLDoubleStorage.cs
- InheritedPropertyChangedEventArgs.cs
- EntityDataSourceSelectingEventArgs.cs
- BufferedGraphicsManager.cs
- HwndSourceParameters.cs
- OdbcConnectionFactory.cs
- ActivityStateRecord.cs
- WebPartZoneBase.cs
- EndOfStreamException.cs
- StaticExtensionConverter.cs
- NativeMethods.cs
- CompareInfo.cs
- XmlSortKey.cs
- ProcessModelInfo.cs
- ClientConfigurationSystem.cs
- login.cs
- EventBookmark.cs
- SwitchExpression.cs
- ClientSettingsProvider.cs
- InfoCardPolicy.cs
- SecurityException.cs
- Parameter.cs
- FontWeightConverter.cs
- ProjectionCamera.cs
- XmlDataSourceNodeDescriptor.cs
- StringOutput.cs
- GuidConverter.cs
- OleDbRowUpdatedEvent.cs
- RotateTransform3D.cs
- XmlSchemaRedefine.cs
- DependencyObject.cs
- ComboBox.cs
- FileNotFoundException.cs
- KnownBoxes.cs
- GcSettings.cs
- EventSourceCreationData.cs
- CryptoApi.cs
- SHA512.cs
- ProfileSection.cs
- PanelStyle.cs
- DesignOnlyAttribute.cs
- TemplateControlCodeDomTreeGenerator.cs
- PagedDataSource.cs
- BufferModesCollection.cs
- UrlAuthFailureHandler.cs
- PrefixQName.cs
- InternalPermissions.cs
- GatewayDefinition.cs
- BitmapDecoder.cs
- HttpCookie.cs
- TemplatedMailWebEventProvider.cs
- BamlWriter.cs
- WebPartCollection.cs
- CryptoConfig.cs
- ErrorProvider.cs
- UnmanagedBitmapWrapper.cs
- CustomGrammar.cs
- DetailsViewDeleteEventArgs.cs
- Context.cs
- TransformDescriptor.cs