Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / WinForms / Managed / System / WinForms / DataGridViewCellCollection.cs / 1 / DataGridViewCellCollection.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms { using System; using System.Diagnostics; using System.Collections; using System.Windows.Forms; using System.ComponentModel; using System.Globalization; using System.Diagnostics.CodeAnalysis; ////// /// [ ListBindable(false), SuppressMessage("Microsoft.Design", "CA1010:CollectionsShouldImplementGenericInterface") // Consider adding an IListRepresents a collection of ///objects in the /// control. implementation ] public class DataGridViewCellCollection : BaseCollection, IList { CollectionChangeEventHandler onCollectionChanged; ArrayList items = new ArrayList(); DataGridViewRow owner = null; /// /// int IList.Add(object value) { return this.Add((DataGridViewCell) value); } /// /// void IList.Clear() { this.Clear(); } /// /// bool IList.Contains(object value) { return this.items.Contains(value); } /// /// int IList.IndexOf(object value) { return this.items.IndexOf(value); } /// /// void IList.Insert(int index, object value) { this.Insert(index, (DataGridViewCell) value); } /// /// void IList.Remove(object value) { this.Remove((DataGridViewCell) value); } /// /// void IList.RemoveAt(int index) { this.RemoveAt(index); } /// /// bool IList.IsFixedSize { get {return false;} } /// /// bool IList.IsReadOnly { get {return false;} } /// /// object IList.this[int index] { get { return this[index]; } set { this[index] = (DataGridViewCell) value; } } /// /// void ICollection.CopyTo(Array array, int index) { this.items.CopyTo(array, index); } /// /// int ICollection.Count { get {return this.items.Count;} } /// /// bool ICollection.IsSynchronized { get {return false;} } /// /// object ICollection.SyncRoot { get {return this;} } /// /// IEnumerator IEnumerable.GetEnumerator() { return this.items.GetEnumerator(); } /// public DataGridViewCellCollection(DataGridViewRow dataGridViewRow) { Debug.Assert(dataGridViewRow != null); this.owner = dataGridViewRow; } /// /// /// protected override ArrayList List { get { return this.items; } } ///[To be supplied.] ////// /// Retrieves the DataGridViewCell with the specified index. /// public DataGridViewCell this[int index] { get { return (DataGridViewCell) this.items[index]; } set { DataGridViewCell dataGridViewCell = value; if (dataGridViewCell == null) { throw new ArgumentNullException("value"); } if (dataGridViewCell.DataGridView != null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewCellCollection_CellAlreadyBelongsToDataGridView)); } if (dataGridViewCell.OwningRow != null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewCellCollection_CellAlreadyBelongsToDataGridViewRow)); } if (this.owner.DataGridView != null) { this.owner.DataGridView.OnReplacingCell(this.owner, index); } DataGridViewCell oldDataGridViewCell = (DataGridViewCell) this.items[index]; this.items[index] = dataGridViewCell; dataGridViewCell.OwningRowInternal = this.owner; dataGridViewCell.StateInternal = oldDataGridViewCell.State; if (this.owner.DataGridView != null) { dataGridViewCell.DataGridViewInternal = this.owner.DataGridView; dataGridViewCell.OwningColumnInternal = this.owner.DataGridView.Columns[index]; this.owner.DataGridView.OnReplacedCell(this.owner, index); } oldDataGridViewCell.DataGridViewInternal = null; oldDataGridViewCell.OwningRowInternal = null; oldDataGridViewCell.OwningColumnInternal = null; if (oldDataGridViewCell.ReadOnly) { oldDataGridViewCell.ReadOnlyInternal = false; } if (oldDataGridViewCell.Selected) { oldDataGridViewCell.SelectedInternal = false; } } } ////// /// Retrieves the DataGridViewCell with the specified column name. /// public DataGridViewCell this[string columnName] { get { DataGridViewColumn dataGridViewColumn = null; if (this.owner.DataGridView != null) { dataGridViewColumn = this.owner.DataGridView.Columns[columnName]; } if (dataGridViewColumn == null) { throw new ArgumentException(SR.GetString(SR.DataGridViewColumnCollection_ColumnNotFound, columnName), "columnName"); } return (DataGridViewCell) this.items[dataGridViewColumn.Index]; } set { DataGridViewColumn dataGridViewColumn = null; if (this.owner.DataGridView != null) { dataGridViewColumn = this.owner.DataGridView.Columns[columnName]; } if (dataGridViewColumn == null) { throw new ArgumentException(SR.GetString(SR.DataGridViewColumnCollection_ColumnNotFound, columnName), "columnName"); } this[dataGridViewColumn.Index] = value; } } ////// /// public event CollectionChangeEventHandler CollectionChanged { add { this.onCollectionChanged += value; } remove { this.onCollectionChanged -= value; } } ///[To be supplied.] ////// /// public virtual int Add(DataGridViewCell dataGridViewCell) { if (this.owner.DataGridView != null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewCellCollection_OwningRowAlreadyBelongsToDataGridView)); } if (dataGridViewCell.OwningRow != null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewCellCollection_CellAlreadyBelongsToDataGridViewRow)); } Debug.Assert(!dataGridViewCell.ReadOnly); return AddInternal(dataGridViewCell); } internal int AddInternal(DataGridViewCell dataGridViewCell) { Debug.Assert(!dataGridViewCell.Selected); int index = this.items.Add(dataGridViewCell); dataGridViewCell.OwningRowInternal = this.owner; DataGridView dataGridView = this.owner.DataGridView; if (dataGridView != null && dataGridView.Columns.Count > index) { dataGridViewCell.OwningColumnInternal = dataGridView.Columns[index]; } OnCollectionChanged(new CollectionChangeEventArgs(CollectionChangeAction.Add, dataGridViewCell)); return index; } ///Adds a ///to this collection. /// /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public virtual void AddRange(params DataGridViewCell[] dataGridViewCells) { if (dataGridViewCells == null) { throw new ArgumentNullException("dataGridViewCells"); } if (this.owner.DataGridView != null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewCellCollection_OwningRowAlreadyBelongsToDataGridView)); } foreach (DataGridViewCell dataGridViewCell in dataGridViewCells) { if (dataGridViewCell == null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewCellCollection_AtLeastOneCellIsNull)); } if (dataGridViewCell.OwningRow != null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewCellCollection_CellAlreadyBelongsToDataGridViewRow)); } } // Make sure no two cells are identical int cellCount = dataGridViewCells.Length; for (int cell1 = 0; cell1 < cellCount - 1; cell1++) { for (int cell2 = cell1 + 1; cell2 < cellCount; cell2++) { if (dataGridViewCells[cell1] == dataGridViewCells[cell2]) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewCellCollection_CannotAddIdenticalCells)); } } } this.items.AddRange(dataGridViewCells); foreach (DataGridViewCell dataGridViewCell in dataGridViewCells) { dataGridViewCell.OwningRowInternal = this.owner; Debug.Assert(!dataGridViewCell.ReadOnly); Debug.Assert(!dataGridViewCell.Selected); } OnCollectionChanged(new CollectionChangeEventArgs(CollectionChangeAction.Refresh, null)); } ///[To be supplied.] ////// /// public virtual void Clear() { if (this.owner.DataGridView != null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewCellCollection_OwningRowAlreadyBelongsToDataGridView)); } foreach (DataGridViewCell dataGridViewCell in this.items) { dataGridViewCell.OwningRowInternal = null; } this.items.Clear(); OnCollectionChanged(new CollectionChangeEventArgs(CollectionChangeAction.Refresh, null)); } ///[To be supplied.] ///public void CopyTo(DataGridViewCell[] array, int index) { this.items.CopyTo(array, index); } /// /// /// Checks to see if a DataGridViewCell is contained in this collection. /// public virtual bool Contains(DataGridViewCell dataGridViewCell) { int index = this.items.IndexOf(dataGridViewCell); return index != -1; } ///public int IndexOf(DataGridViewCell dataGridViewCell) { return this.items.IndexOf(dataGridViewCell); } /// public virtual void Insert(int index, DataGridViewCell dataGridViewCell) { if (this.owner.DataGridView != null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewCellCollection_OwningRowAlreadyBelongsToDataGridView)); } if (dataGridViewCell.OwningRow != null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewCellCollection_CellAlreadyBelongsToDataGridViewRow)); } Debug.Assert(!dataGridViewCell.ReadOnly); Debug.Assert(!dataGridViewCell.Selected); this.items.Insert(index, dataGridViewCell); dataGridViewCell.OwningRowInternal = this.owner; OnCollectionChanged(new CollectionChangeEventArgs(CollectionChangeAction.Add, dataGridViewCell)); } internal void InsertInternal(int index, DataGridViewCell dataGridViewCell) { Debug.Assert(!dataGridViewCell.Selected); this.items.Insert(index, dataGridViewCell); dataGridViewCell.OwningRowInternal = this.owner; DataGridView dataGridView = this.owner.DataGridView; if (dataGridView != null && dataGridView.Columns.Count > index) { dataGridViewCell.OwningColumnInternal = dataGridView.Columns[index]; } OnCollectionChanged(new CollectionChangeEventArgs(CollectionChangeAction.Add, dataGridViewCell)); } /// /// /// protected void OnCollectionChanged(CollectionChangeEventArgs e) { if (this.onCollectionChanged != null) { this.onCollectionChanged(this, e); } } ///[To be supplied.] ////// /// public virtual void Remove(DataGridViewCell cell) { if (this.owner.DataGridView != null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewCellCollection_OwningRowAlreadyBelongsToDataGridView)); } int cellIndex = -1; int itemsCount = this.items.Count; for (int i = 0; i < itemsCount; ++i) { if (this.items[i] == cell) { cellIndex = i; break; } } if (cellIndex == -1) { throw new ArgumentException(SR.GetString(SR.DataGridViewCellCollection_CellNotFound)); } else { RemoveAt(cellIndex); } } ///[To be supplied.] ////// /// public virtual void RemoveAt(int index) { if (this.owner.DataGridView != null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewCellCollection_OwningRowAlreadyBelongsToDataGridView)); } RemoveAtInternal(index); } internal void RemoveAtInternal(int index) { DataGridViewCell dataGridViewCell = (DataGridViewCell) this.items[index]; this.items.RemoveAt(index); dataGridViewCell.DataGridViewInternal = null; dataGridViewCell.OwningRowInternal = null; if (dataGridViewCell.ReadOnly) { dataGridViewCell.ReadOnlyInternal = false; } if (dataGridViewCell.Selected) { dataGridViewCell.SelectedInternal = false; } OnCollectionChanged(new CollectionChangeEventArgs(CollectionChangeAction.Remove, dataGridViewCell)); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.[To be supplied.] ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- GuidelineCollection.cs
- DurableTimerExtension.cs
- RegexTree.cs
- StylusSystemGestureEventArgs.cs
- EditorAttribute.cs
- SynchronizedInputAdaptor.cs
- PasswordDeriveBytes.cs
- FlowSwitchDesigner.xaml.cs
- streamingZipPartStream.cs
- WebPartRestoreVerb.cs
- SQLBinary.cs
- NullRuntimeConfig.cs
- CryptoProvider.cs
- ElementUtil.cs
- TabletDevice.cs
- AggregateNode.cs
- RawUIStateInputReport.cs
- DigitalSignature.cs
- SoapIncludeAttribute.cs
- DrawingContextDrawingContextWalker.cs
- StructuralType.cs
- DataControlCommands.cs
- XslAstAnalyzer.cs
- WebScriptServiceHostFactory.cs
- WebSysDescriptionAttribute.cs
- Descriptor.cs
- _NegoStream.cs
- DispatcherExceptionFilterEventArgs.cs
- EventListenerClientSide.cs
- MachineKey.cs
- X509Utils.cs
- XmlTextEncoder.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- TransformProviderWrapper.cs
- DefaultValueAttribute.cs
- IsolatedStorageFile.cs
- DataSourceDesigner.cs
- ISAPIWorkerRequest.cs
- ArrayList.cs
- DesignerVerb.cs
- ControlIdConverter.cs
- UpdatePanelTrigger.cs
- CorruptingExceptionCommon.cs
- PermissionListSet.cs
- WebResourceAttribute.cs
- ThreadAbortException.cs
- MetabaseSettings.cs
- FrameAutomationPeer.cs
- Ref.cs
- SqlDependency.cs
- TableStyle.cs
- CollectionViewGroupInternal.cs
- ProxyHwnd.cs
- TransformerConfigurationWizardBase.cs
- HotSpotCollection.cs
- LineInfo.cs
- TimelineGroup.cs
- _DomainName.cs
- File.cs
- MasterPageParser.cs
- controlskin.cs
- MimeFormReflector.cs
- DrawingContext.cs
- Floater.cs
- Int16Converter.cs
- HttpEncoder.cs
- WindowsPrincipal.cs
- WebPartDeleteVerb.cs
- TypeCollectionPropertyEditor.cs
- BuildResultCache.cs
- ContainerParaClient.cs
- FixedTextSelectionProcessor.cs
- GradientBrush.cs
- ChannelManager.cs
- SecUtil.cs
- SafeNativeMethods.cs
- TableChangeProcessor.cs
- InfoCardTrace.cs
- GeometryDrawing.cs
- Queue.cs
- Msec.cs
- ValidationManager.cs
- AVElementHelper.cs
- HtmlElementCollection.cs
- AdPostCacheSubstitution.cs
- WebContext.cs
- ConfigViewGenerator.cs
- SqlDataAdapter.cs
- SecurityAppliedMessage.cs
- EventLogger.cs
- TextBox.cs
- TraceHandler.cs
- BufferAllocator.cs
- DuplexClientBase.cs
- WebPartCancelEventArgs.cs
- PathGeometry.cs
- ErrorRuntimeConfig.cs
- RuleSet.cs
- HttpPostProtocolReflector.cs
- ContainerParaClient.cs