Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / TableLayoutStyleCollection.cs / 1305376 / TableLayoutStyleCollection.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Windows.Forms {
using System;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Design;
using System.Globalization;
using System.Windows.Forms.Layout;
using System.Reflection;
///
[Editor("System.Windows.Forms.Design.StyleCollectionEditor, " + AssemblyRef.SystemDesign, typeof(UITypeEditor))]
public abstract class TableLayoutStyleCollection : IList {
private IArrangedElement _owner;
private ArrayList _innerList = new ArrayList();
internal TableLayoutStyleCollection(IArrangedElement owner) {
_owner = owner;
}
internal IArrangedElement Owner {
get { return _owner; }
}
internal virtual string PropertyName {
get { return null; }
}
///
///
int IList.Add(object style) {
EnsureNotOwned((TableLayoutStyle)style);
((TableLayoutStyle)style).Owner = this.Owner;
int index = _innerList.Add(style);
PerformLayoutIfOwned();
return index;
}
///
///
public int Add(TableLayoutStyle style) {
return ((IList)this).Add(style);
}
///
///
void IList.Insert(int index, object style) {
EnsureNotOwned((TableLayoutStyle)style);
((TableLayoutStyle)style).Owner = this.Owner;
_innerList.Insert(index, style);
PerformLayoutIfOwned();
}
///
///
object IList.this[int index] {
get { return _innerList[index]; }
set {
TableLayoutStyle style = (TableLayoutStyle) value;
EnsureNotOwned(style);
style.Owner = this.Owner;
_innerList[index] = style;
PerformLayoutIfOwned();
}
}
///
///
public TableLayoutStyle this[int index] {
get { return (TableLayoutStyle)((IList)this)[index]; }
set { ((IList)this)[index] = value; }
}
///
///
void IList.Remove(object style) {
((TableLayoutStyle)style).Owner = null;
_innerList.Remove(style);
PerformLayoutIfOwned();
}
///
public void Clear() {
foreach(TableLayoutStyle style in _innerList) {
style.Owner = null;
}
_innerList.Clear();
PerformLayoutIfOwned();
}
///
public void RemoveAt(int index) {
TableLayoutStyle style = (TableLayoutStyle) _innerList[index];
style.Owner = null;
_innerList.RemoveAt(index);
PerformLayoutIfOwned();
}
// These methods just forward to _innerList.
bool IList.Contains(object style) { return _innerList.Contains(style); }
int IList.IndexOf(object style) { return _innerList.IndexOf(style); }
// These properties / methods just forward to _innerList and are item-type agnostic.
bool IList.IsFixedSize { get {return _innerList.IsFixedSize;} }
bool IList.IsReadOnly { get {return _innerList.IsReadOnly;} }
void ICollection.CopyTo(System.Array array, int startIndex) { _innerList.CopyTo(array, startIndex); }
///
public int Count { get { return _innerList.Count; }}
bool ICollection.IsSynchronized { get{ return _innerList.IsSynchronized; }}
object ICollection.SyncRoot { get { return _innerList.SyncRoot; }}
IEnumerator IEnumerable.GetEnumerator() { return _innerList.GetEnumerator(); }
private void EnsureNotOwned(TableLayoutStyle style) {
if(style.Owner != null) {
throw new ArgumentException(SR.GetString(SR.OnlyOneControl, style.GetType().Name), "style");
}
}
internal void EnsureOwnership(IArrangedElement owner) {
_owner = owner;
for (int i = 0; i < Count; i++) {
this[i].Owner = owner;
}
}
private void PerformLayoutIfOwned() {
if (this.Owner != null) {
LayoutTransaction.DoLayout(this.Owner, this.Owner, PropertyName);
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SystemInformation.cs
- WebPartZoneBaseDesigner.cs
- DrawingBrush.cs
- Switch.cs
- DecimalFormatter.cs
- SplineQuaternionKeyFrame.cs
- DataGridViewRowCollection.cs
- ListViewGroupItemCollection.cs
- TableAdapterManagerHelper.cs
- AutoGeneratedField.cs
- WorkflowMessageEventHandler.cs
- WebUtil.cs
- PenThread.cs
- ModelVisual3D.cs
- BinaryUtilClasses.cs
- RewritingPass.cs
- Collection.cs
- ObjectDataSourceSelectingEventArgs.cs
- MonthChangedEventArgs.cs
- CroppedBitmap.cs
- TextInfo.cs
- ParsedAttributeCollection.cs
- SqlBooleanMismatchVisitor.cs
- ItemsControlAutomationPeer.cs
- TableStyle.cs
- StrokeNodeData.cs
- TextDecoration.cs
- HttpTransportSecurityElement.cs
- ToolStripRenderer.cs
- LowerCaseStringConverter.cs
- XXXInfos.cs
- DataContractSerializerElement.cs
- PackUriHelper.cs
- counter.cs
- TokenizerHelper.cs
- mediaclock.cs
- SqlClientMetaDataCollectionNames.cs
- PresentationTraceSources.cs
- ConsumerConnectionPoint.cs
- SoapMessage.cs
- WindowsToolbarAsMenu.cs
- TableDetailsCollection.cs
- TextContainer.cs
- SocketException.cs
- assertwrapper.cs
- loginstatus.cs
- FreezableDefaultValueFactory.cs
- FrugalList.cs
- ManageRequest.cs
- Exception.cs
- IdleTimeoutMonitor.cs
- MaskPropertyEditor.cs
- PieceDirectory.cs
- DataGridCommandEventArgs.cs
- DockPanel.cs
- DesignerValidatorAdapter.cs
- ParameterRetriever.cs
- SettingsPropertyIsReadOnlyException.cs
- DbConnectionOptions.cs
- DBPropSet.cs
- SegmentInfo.cs
- ConfigurationPropertyCollection.cs
- controlskin.cs
- ParameterElement.cs
- Cursors.cs
- WSSecurityPolicy.cs
- BaseCollection.cs
- PreloadedPackages.cs
- FontDifferentiator.cs
- EntityDataSourceSelectingEventArgs.cs
- ObjectParameterCollection.cs
- XmlHelper.cs
- ErrorProvider.cs
- HttpCapabilitiesBase.cs
- OrderedDictionaryStateHelper.cs
- ZeroOpNode.cs
- BooleanFunctions.cs
- ParenthesizePropertyNameAttribute.cs
- ReadOnlyCollectionBase.cs
- FeedUtils.cs
- StringSource.cs
- ReverseInheritProperty.cs
- BufferedOutputStream.cs
- ControlHelper.cs
- DbParameterHelper.cs
- BaseDataList.cs
- NGCSerializerAsync.cs
- SqlBuffer.cs
- StyleCollection.cs
- SchemaManager.cs
- ArrayItemValue.cs
- Opcode.cs
- FileLoadException.cs
- OleCmdHelper.cs
- translator.cs
- DataGridViewToolTip.cs
- TreeNodeConverter.cs
- FunctionParameter.cs
- Converter.cs
- ChangeBlockUndoRecord.cs