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
- HttpCapabilitiesSectionHandler.cs
- SelectedDatesCollection.cs
- ViewManager.cs
- SettingsPropertyIsReadOnlyException.cs
- XXXInfos.cs
- NameValueCollection.cs
- DBParameter.cs
- ModulesEntry.cs
- ModelItemKeyValuePair.cs
- DataGridViewAdvancedBorderStyle.cs
- XmlComplianceUtil.cs
- X509ChainPolicy.cs
- SrgsDocument.cs
- ConfigsHelper.cs
- WebPartDescription.cs
- EnumDataContract.cs
- BitConverter.cs
- EventData.cs
- XsltException.cs
- RoleGroup.cs
- SBCSCodePageEncoding.cs
- OracleCommandBuilder.cs
- TimeSpanValidator.cs
- ProfileGroupSettingsCollection.cs
- GroupItem.cs
- UnsafeNativeMethods.cs
- ServicesUtilities.cs
- IDispatchConstantAttribute.cs
- IndexerReference.cs
- TranslateTransform.cs
- DataSpaceManager.cs
- WebPartActionVerb.cs
- Ipv6Element.cs
- CompiledXpathExpr.cs
- RegisteredDisposeScript.cs
- ScrollBarRenderer.cs
- ConfigurationElementCollection.cs
- MemberListBinding.cs
- DataContract.cs
- IIS7WorkerRequest.cs
- ListViewInsertionMark.cs
- RadioButtonBaseAdapter.cs
- SiteMapNode.cs
- TypefaceMetricsCache.cs
- DataServiceQuery.cs
- DbCommandDefinition.cs
- DataSourceBooleanViewSchemaConverter.cs
- SqlVersion.cs
- XmlChildEnumerator.cs
- XmlHierarchicalDataSourceView.cs
- PackUriHelper.cs
- ManagedIStream.cs
- SqlDataSourceCache.cs
- FlowDocumentPaginator.cs
- Binding.cs
- SafeNativeMethods.cs
- ValidationPropertyAttribute.cs
- DataKey.cs
- CollectionViewGroup.cs
- TextDecoration.cs
- DataGridViewCellStateChangedEventArgs.cs
- CodeSnippetCompileUnit.cs
- COMException.cs
- EmptyReadOnlyDictionaryInternal.cs
- SafeNativeMemoryHandle.cs
- BuildResultCache.cs
- GroupJoinQueryOperator.cs
- CodeAttributeDeclaration.cs
- DependencyObjectPropertyDescriptor.cs
- TrustLevel.cs
- HandleCollector.cs
- _Win32.cs
- AdvancedBindingEditor.cs
- WebControlAdapter.cs
- CustomAttribute.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- DataGridViewLinkCell.cs
- WaitForChangedResult.cs
- TargetParameterCountException.cs
- ColumnHeaderConverter.cs
- TransformFinalBlockRequest.cs
- DesignerExtenders.cs
- ControllableStoryboardAction.cs
- WindowsTreeView.cs
- CustomErrorsSection.cs
- InputMethod.cs
- ObjectDataSourceView.cs
- StateDesigner.Layouts.cs
- TimerElapsedEvenArgs.cs
- FocusManager.cs
- VirtualizedItemPattern.cs
- CornerRadiusConverter.cs
- TableRow.cs
- IndividualDeviceConfig.cs
- ToolStripSplitButton.cs
- followingsibling.cs
- IsolatedStorageFilePermission.cs
- DataGridColumnCollection.cs
- NameValueCollection.cs
- TextDecoration.cs