Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / ToolStripCustomTypeDescriptor.cs / 1 / ToolStripCustomTypeDescriptor.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
*/
namespace System.Windows.Forms.Design {
using System.Design;
using System.ComponentModel;
using System.Diagnostics;
using System;
using System.Collections;
using System.ComponentModel.Design;
using System.ComponentModel.Design.Serialization;
using System.Windows.Forms;
///
/// ToolStripCustomTypeDescriptor class.
///
internal class ToolStripCustomTypeDescriptor : CustomTypeDescriptor
{
ToolStrip instance = null;
PropertyDescriptor propItems = null;
PropertyDescriptorCollection collection = null;
public ToolStripCustomTypeDescriptor(ToolStrip instance) : base()
{
this.instance = instance;
}
///
///
/// The GetPropertyOwner method returns an instance of an object that
/// owns the given property for the object this type descriptor is representing.
/// An optional attribute array may be provided to filter the collection that is
/// returned. Returning null from this method causes the TypeDescriptor object
/// to use its default type description services.
///
public override object GetPropertyOwner(PropertyDescriptor pd)
{
return instance;
}
///
///
/// The GetProperties method returns a collection of property descriptors
/// for the object this type descriptor is representing. An optional
/// attribute array may be provided to filter the collection that is returned.
/// If no parent is provided,this will return an empty
/// property collection.
///
public override PropertyDescriptorCollection GetProperties()
{
if (instance!= null && collection == null)
{
PropertyDescriptorCollection retColl = TypeDescriptor.GetProperties(instance);
PropertyDescriptor[] propArray = new PropertyDescriptor[retColl.Count];
retColl.CopyTo(propArray, 0);
collection = new PropertyDescriptorCollection(propArray, false);
}
if (collection.Count > 0)
{
propItems = collection["Items"];
if (propItems != null)
{
collection.Remove(propItems);
}
}
return collection;
}
///
///
/// The GetProperties method returns a collection of property descriptors
/// for the object this type descriptor is representing. An optional
/// attribute array may be provided to filter the collection that is returned.
/// If no parent is provided,this will return an empty
/// property collection.
/// Here we will pass the "collection without the "items" property.
///
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
if (instance!= null && collection == null)
{
PropertyDescriptorCollection retColl = TypeDescriptor.GetProperties(instance);
PropertyDescriptor[] propArray = new PropertyDescriptor[retColl.Count];
retColl.CopyTo(propArray, 0);
collection = new PropertyDescriptorCollection(propArray, false);
}
if (collection.Count > 0)
{
propItems = collection["Items"];
if (propItems != null)
{
collection.Remove(propItems);
}
}
return collection;
}
}
}
// 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
- AmbientProperties.cs
- ApplicationDirectory.cs
- SqlDataSourceCache.cs
- FilteredXmlReader.cs
- unsafeIndexingFilterStream.cs
- ZoneLinkButton.cs
- ConstraintConverter.cs
- ExternalFile.cs
- DataKeyPropertyAttribute.cs
- StatementContext.cs
- ConvertTextFrag.cs
- BookmarkOptionsHelper.cs
- SaveCardRequest.cs
- TextAction.cs
- IpcManager.cs
- SpoolingTaskBase.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- ContentType.cs
- XslAst.cs
- GroupStyle.cs
- BounceEase.cs
- TextTrailingCharacterEllipsis.cs
- ParameterDataSourceExpression.cs
- AutomationElementIdentifiers.cs
- cache.cs
- LinkedResourceCollection.cs
- TargetInvocationException.cs
- SliderAutomationPeer.cs
- HashAlgorithm.cs
- VBIdentifierTrimConverter.cs
- TryCatchDesigner.xaml.cs
- ResourceSet.cs
- TimeIntervalCollection.cs
- BuildResult.cs
- InstanceCreationEditor.cs
- DataGridViewAutoSizeModeEventArgs.cs
- UnsafeNativeMethods.cs
- DocobjHost.cs
- ChtmlTextWriter.cs
- TextChangedEventArgs.cs
- WindowsEditBox.cs
- VideoDrawing.cs
- Selection.cs
- IxmlLineInfo.cs
- Ops.cs
- SubMenuStyleCollection.cs
- PreviewPageInfo.cs
- TextFormatterImp.cs
- XMLDiffLoader.cs
- TypeSystem.cs
- StrokeSerializer.cs
- LinkedResource.cs
- XPathNodeList.cs
- ListControlConvertEventArgs.cs
- Array.cs
- MLangCodePageEncoding.cs
- DynamicResourceExtension.cs
- TextParagraphCache.cs
- DeferredRunTextReference.cs
- EventLogConfiguration.cs
- SQLChars.cs
- ButtonStandardAdapter.cs
- BoolExpression.cs
- JapaneseLunisolarCalendar.cs
- AccessedThroughPropertyAttribute.cs
- LineGeometry.cs
- RegistryHandle.cs
- MethodImplAttribute.cs
- HtmlMeta.cs
- IndicFontClient.cs
- SoapIncludeAttribute.cs
- ViewBox.cs
- HebrewCalendar.cs
- ListViewTableCell.cs
- AuthorizationRuleCollection.cs
- ColorTransformHelper.cs
- ToolStripGripRenderEventArgs.cs
- PointLightBase.cs
- AttributeProviderAttribute.cs
- SizeF.cs
- TreeNodeStyle.cs
- SequentialOutput.cs
- CompressionTransform.cs
- QilLiteral.cs
- SEHException.cs
- SqlFactory.cs
- DataReaderContainer.cs
- WebConfigurationFileMap.cs
- InvalidCastException.cs
- DataServiceRequest.cs
- XmlBinaryReaderSession.cs
- Helpers.cs
- ValidationRuleCollection.cs
- backend.cs
- MSG.cs
- webclient.cs
- QuaternionAnimation.cs
- OuterGlowBitmapEffect.cs
- TypedAsyncResult.cs
- ChameleonKey.cs