Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / Host / DesignSurfaceCollection.cs / 1 / DesignSurfaceCollection.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.ComponentModel.Design {
using System;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Design;
using System.Diagnostics;
///
///
/// Provides a read-only collection of design surfaces.
///
public sealed class DesignSurfaceCollection : ICollection {
private DesignerCollection _designers;
///
/// Initializes a new instance of the DesignSurfaceCollection class
///
internal DesignSurfaceCollection(DesignerCollection designers) {
_designers = designers;
if (_designers == null) {
_designers = new DesignerCollection(null);
}
}
///
///
/// Gets number of design surfaces in the collection.
///
public int Count {
get {
return _designers.Count;
}
}
///
///
/// Gets or sets the document at the specified index.
///
public DesignSurface this[int index] {
get {
IDesignerHost host = _designers[index];
DesignSurface surface = host.GetService(typeof(DesignSurface)) as DesignSurface;
if (surface == null) {
throw new NotSupportedException();
}
return surface;
}
}
///
///
/// Creates and retrieves a new enumerator for this collection.
///
public IEnumerator GetEnumerator() {
return new DesignSurfaceEnumerator(_designers.GetEnumerator());
}
///
///
int ICollection.Count {
get {
return Count;
}
}
///
///
bool ICollection.IsSynchronized {
get {
return false;
}
}
///
///
object ICollection.SyncRoot {
get {
return null;
}
}
///
///
void ICollection.CopyTo(Array array, int index) {
foreach(DesignSurface surface in this) {
array.SetValue(surface, index++);
}
}
public void CopyTo(DesignSurface[] array, int index) {
((ICollection)this).CopyTo(array, index);
}
///
///
IEnumerator IEnumerable.GetEnumerator() {
return GetEnumerator();
}
///
/// Enumerator that performs the conversion from designer host
/// to design surface.
///
private class DesignSurfaceEnumerator : IEnumerator {
private IEnumerator _designerEnumerator;
internal DesignSurfaceEnumerator(IEnumerator designerEnumerator) {
_designerEnumerator = designerEnumerator;
}
public object Current {
get {
IDesignerHost host = (IDesignerHost)_designerEnumerator.Current;
DesignSurface surface = host.GetService(typeof(DesignSurface)) as DesignSurface;
if (surface == null) {
throw new NotSupportedException();
}
return surface;
}
}
public bool MoveNext() {
return _designerEnumerator.MoveNext();
}
public void Reset() {
_designerEnumerator.Reset();
}
}
}
}
// 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
- TableRowCollection.cs
- InfoCardRSACryptoProvider.cs
- SponsorHelper.cs
- XmlFormatExtensionAttribute.cs
- MulticastDelegate.cs
- Dump.cs
- RegistrationServices.cs
- AudioException.cs
- NativeMethods.cs
- PartitionerQueryOperator.cs
- ConfigXmlWhitespace.cs
- SchemaAttDef.cs
- FlowDocumentReader.cs
- SrgsRulesCollection.cs
- ComAdminWrapper.cs
- HMACMD5.cs
- iisPickupDirectory.cs
- GridItemCollection.cs
- DataGridBoolColumn.cs
- ValuePattern.cs
- ScopeElementCollection.cs
- Scheduler.cs
- PaginationProgressEventArgs.cs
- WindowsGraphicsWrapper.cs
- GroupBox.cs
- FontInfo.cs
- ElementProxy.cs
- Vector3DAnimationUsingKeyFrames.cs
- UmAlQuraCalendar.cs
- SiteMapNodeItemEventArgs.cs
- SecurityIdentifierElement.cs
- ListBoxItemAutomationPeer.cs
- CheckoutException.cs
- FormsIdentity.cs
- Rijndael.cs
- ContentDesigner.cs
- DateTimeFormatInfo.cs
- TypedElement.cs
- Rect.cs
- IUnknownConstantAttribute.cs
- DataGridViewTopRowAccessibleObject.cs
- UICuesEvent.cs
- ListView.cs
- DeviceSpecificDialogCachedState.cs
- DataIdProcessor.cs
- MSAAEventDispatcher.cs
- EnterpriseServicesHelper.cs
- RightsManagementEncryptedStream.cs
- VectorAnimationUsingKeyFrames.cs
- TranslateTransform3D.cs
- ThreadAttributes.cs
- XmlEntity.cs
- DbParameterCollectionHelper.cs
- Material.cs
- AssemblyUtil.cs
- RestHandlerFactory.cs
- RawStylusInputCustomData.cs
- IriParsingElement.cs
- HtmlInputSubmit.cs
- HostSecurityManager.cs
- RangeValuePattern.cs
- FontCacheLogic.cs
- BinaryObjectReader.cs
- DesignerLoader.cs
- CodeMethodReturnStatement.cs
- BitmapEditor.cs
- GiveFeedbackEvent.cs
- WebPartEditorCancelVerb.cs
- CultureTable.cs
- ExpressionBuilder.cs
- EdmConstants.cs
- EntityDataSourceWrapper.cs
- PngBitmapEncoder.cs
- DiagnosticsConfiguration.cs
- InternalTypeHelper.cs
- TextServicesCompartment.cs
- BitmapEffectInputConnector.cs
- ProgressBarAutomationPeer.cs
- WindowsListViewItem.cs
- MenuItemBinding.cs
- BitmapVisualManager.cs
- localization.cs
- XmlSiteMapProvider.cs
- UserPreferenceChangingEventArgs.cs
- NumericUpDownAccelerationCollection.cs
- EncoderParameters.cs
- ConditionCollection.cs
- UserUseLicenseDictionaryLoader.cs
- PrivilegeNotHeldException.cs
- DocobjHost.cs
- ItemCheckEvent.cs
- MetadataItemEmitter.cs
- TryCatch.cs
- UrlMappingsSection.cs
- CLRBindingWorker.cs
- WebPartCloseVerb.cs
- TemplateBuilder.cs
- GB18030Encoding.cs
- XmlSchemaFacet.cs
- XmlSchemaImport.cs