Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / DataGridViewCellCollection.cs / 1305376 / 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.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.[To be supplied.] ///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AppSecurityManager.cs
- _NegotiateClient.cs
- MatrixKeyFrameCollection.cs
- BooleanAnimationUsingKeyFrames.cs
- UInt64Converter.cs
- ObjectDataProvider.cs
- TargetControlTypeAttribute.cs
- StructureChangedEventArgs.cs
- ProtocolsConfiguration.cs
- QuaternionRotation3D.cs
- XPathNode.cs
- DragEvent.cs
- EtwTrackingBehaviorElement.cs
- ErasingStroke.cs
- FrameworkPropertyMetadata.cs
- ResponseStream.cs
- SafeWaitHandle.cs
- ObjectDataSourceSelectingEventArgs.cs
- Marshal.cs
- TextTreeUndoUnit.cs
- BaseParagraph.cs
- IsolatedStorageException.cs
- ButtonAutomationPeer.cs
- WebPartActionVerb.cs
- DataBinding.cs
- FlowLayoutPanel.cs
- Currency.cs
- WrappedReader.cs
- WebPartCatalogAddVerb.cs
- ButtonPopupAdapter.cs
- IOException.cs
- Span.cs
- TrackBarDesigner.cs
- User.cs
- PersistChildrenAttribute.cs
- FixedHyperLink.cs
- WriteTimeStream.cs
- ControlUtil.cs
- PropertyKey.cs
- SetStoryboardSpeedRatio.cs
- UITypeEditor.cs
- SafeEventLogWriteHandle.cs
- NumericUpDownAcceleration.cs
- IndentTextWriter.cs
- MemberProjectedSlot.cs
- InfoCardBinaryReader.cs
- cookieexception.cs
- MetadataUtilsSmi.cs
- LayoutEngine.cs
- MoveSizeWinEventHandler.cs
- FormClosedEvent.cs
- SqlTriggerContext.cs
- GeometryValueSerializer.cs
- ExpressionEditorAttribute.cs
- StaticTextPointer.cs
- XmlChoiceIdentifierAttribute.cs
- InvokeBase.cs
- ModuleBuilder.cs
- DoubleLink.cs
- ListViewItemMouseHoverEvent.cs
- HttpProfileBase.cs
- WizardPanel.cs
- AppDomain.cs
- TrustManagerPromptUI.cs
- CollectionDataContractAttribute.cs
- GridItemPattern.cs
- Peer.cs
- Scanner.cs
- BevelBitmapEffect.cs
- HtmlInputButton.cs
- TreeBuilder.cs
- Membership.cs
- CompModSwitches.cs
- StretchValidation.cs
- HScrollProperties.cs
- RuntimeConfigurationRecord.cs
- DBParameter.cs
- DataGridViewColumnConverter.cs
- ThreadInterruptedException.cs
- BrowserCapabilitiesFactory.cs
- CommonRemoteMemoryBlock.cs
- NullableIntSumAggregationOperator.cs
- ServiceModelReg.cs
- InProcStateClientManager.cs
- ControlPaint.cs
- NetworkCredential.cs
- DbProviderFactories.cs
- VisualStyleInformation.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- XPathChildIterator.cs
- DbCommandTree.cs
- OleDbFactory.cs
- DynamicControlParameter.cs
- ToolStripTextBox.cs
- ItemContainerGenerator.cs
- RecordBuilder.cs
- SmtpLoginAuthenticationModule.cs
- PathFigure.cs
- LayoutSettings.cs
- Int32RectValueSerializer.cs