Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / WinForms / Managed / System / WinForms / DataGridViewCheckBoxColumn.cs / 1 / DataGridViewCheckBoxColumn.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms { using System; using System.Text; using System.ComponentModel; using System.Diagnostics; using System.Drawing; using System.Diagnostics.CodeAnalysis; using System.Globalization; ///[ToolboxBitmapAttribute(typeof(DataGridViewCheckBoxColumn), "DataGridViewCheckBoxColumn.bmp")] public class DataGridViewCheckBoxColumn : DataGridViewColumn { /// public DataGridViewCheckBoxColumn() : this(false) { } /// [ SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors") // Can't think of a workaround. ] public DataGridViewCheckBoxColumn(bool threeState) : base(new DataGridViewCheckBoxCell(threeState)) { DataGridViewCellStyle defaultCellStyle = new DataGridViewCellStyle(); defaultCellStyle.AlignmentInternal = DataGridViewContentAlignment.MiddleCenter; if (threeState) { defaultCellStyle.NullValue = CheckState.Indeterminate; } else { defaultCellStyle.NullValue = false; } this.DefaultCellStyle = defaultCellStyle; } /// [ Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public override DataGridViewCell CellTemplate { get { return base.CellTemplate; } set { if (value != null && !(value is System.Windows.Forms.DataGridViewCheckBoxCell)) { throw new InvalidCastException(SR.GetString(SR.DataGridViewTypeColumn_WrongCellTemplateType, "System.Windows.Forms.DataGridViewCheckBoxCell")); } base.CellTemplate = value; } } private DataGridViewCheckBoxCell CheckBoxCellTemplate { get { return (DataGridViewCheckBoxCell) this.CellTemplate; } } /// [ Browsable(true), SRCategory(SR.CatAppearance), SRDescription(SR.DataGridView_ColumnDefaultCellStyleDescr) ] public override DataGridViewCellStyle DefaultCellStyle { get { return base.DefaultCellStyle; } set { base.DefaultCellStyle = value; } } /// [ DefaultValue(null), SRCategory(SR.CatData), SRDescription(SR.DataGridView_CheckBoxColumnFalseValueDescr), TypeConverter(typeof(StringConverter)) ] public object FalseValue { get { if (this.CheckBoxCellTemplate == null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewColumn_CellTemplateRequired)); } return this.CheckBoxCellTemplate.FalseValue; } set { if (this.FalseValue != value) { this.CheckBoxCellTemplate.FalseValueInternal = value; if (this.DataGridView != null) { DataGridViewRowCollection dataGridViewRows = this.DataGridView.Rows; int rowCount = dataGridViewRows.Count; for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) { DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex); DataGridViewCheckBoxCell dataGridViewCell = dataGridViewRow.Cells[this.Index] as DataGridViewCheckBoxCell; if (dataGridViewCell != null) { dataGridViewCell.FalseValueInternal = value; } } this.DataGridView.InvalidateColumn(this.Index); } } } } /// [ DefaultValue(FlatStyle.Standard), SRCategory(SR.CatAppearance), SRDescription(SR.DataGridView_CheckBoxColumnFlatStyleDescr) ] public FlatStyle FlatStyle { get { if (this.CheckBoxCellTemplate == null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewColumn_CellTemplateRequired)); } return this.CheckBoxCellTemplate.FlatStyle; } set { if (this.FlatStyle != value) { this.CheckBoxCellTemplate.FlatStyle = value; if (this.DataGridView != null) { DataGridViewRowCollection dataGridViewRows = this.DataGridView.Rows; int rowCount = dataGridViewRows.Count; for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) { DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex); DataGridViewCheckBoxCell dataGridViewCell = dataGridViewRow.Cells[this.Index] as DataGridViewCheckBoxCell; if (dataGridViewCell != null) { dataGridViewCell.FlatStyleInternal = value; } } this.DataGridView.OnColumnCommonChange(this.Index); } } } } /// [ DefaultValue(null), SRCategory(SR.CatData), SRDescription(SR.DataGridView_CheckBoxColumnIndeterminateValueDescr), TypeConverter(typeof(StringConverter)) ] public object IndeterminateValue { get { if (this.CheckBoxCellTemplate == null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewColumn_CellTemplateRequired)); } return this.CheckBoxCellTemplate.IndeterminateValue; } set { if (this.IndeterminateValue != value) { this.CheckBoxCellTemplate.IndeterminateValueInternal = value; if (this.DataGridView != null) { DataGridViewRowCollection dataGridViewRows = this.DataGridView.Rows; int rowCount = dataGridViewRows.Count; for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) { DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex); DataGridViewCheckBoxCell dataGridViewCell = dataGridViewRow.Cells[this.Index] as DataGridViewCheckBoxCell; if (dataGridViewCell != null) { dataGridViewCell.IndeterminateValueInternal = value; } } this.DataGridView.InvalidateColumn(this.Index); } } } } /// [ DefaultValue(false), SRCategory(SR.CatBehavior), SRDescription(SR.DataGridView_CheckBoxColumnThreeStateDescr) ] public bool ThreeState { get { if (this.CheckBoxCellTemplate == null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewColumn_CellTemplateRequired)); } return this.CheckBoxCellTemplate.ThreeState; } [ SuppressMessage("Microsoft.Performance", "CA1808:AvoidCallsThatBoxValueTypes") // OK to cast a NullValue into a bool and CheckState ] set { if (this.ThreeState != value) { this.CheckBoxCellTemplate.ThreeStateInternal = value; if (this.DataGridView != null) { DataGridViewRowCollection dataGridViewRows = this.DataGridView.Rows; int rowCount = dataGridViewRows.Count; for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) { DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex); DataGridViewCheckBoxCell dataGridViewCell = dataGridViewRow.Cells[this.Index] as DataGridViewCheckBoxCell; if (dataGridViewCell != null) { dataGridViewCell.ThreeStateInternal = value; } } this.DataGridView.InvalidateColumn(this.Index); } if (value && this.DefaultCellStyle.NullValue is bool && (bool) this.DefaultCellStyle.NullValue == false) { this.DefaultCellStyle.NullValue = CheckState.Indeterminate; } else if (!value && this.DefaultCellStyle.NullValue is CheckState && (CheckState) this.DefaultCellStyle.NullValue == CheckState.Indeterminate) { this.DefaultCellStyle.NullValue = false; } } } } /// [ DefaultValue(null), SRCategory(SR.CatData), SRDescription(SR.DataGridView_CheckBoxColumnTrueValueDescr), TypeConverter(typeof(StringConverter)) ] public object TrueValue { get { if (this.CheckBoxCellTemplate == null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewColumn_CellTemplateRequired)); } return this.CheckBoxCellTemplate.TrueValue; } set { if (this.TrueValue != value) { this.CheckBoxCellTemplate.TrueValueInternal = value; if (this.DataGridView != null) { DataGridViewRowCollection dataGridViewRows = this.DataGridView.Rows; int rowCount = dataGridViewRows.Count; for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) { DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex); DataGridViewCheckBoxCell dataGridViewCell = dataGridViewRow.Cells[this.Index] as DataGridViewCheckBoxCell; if (dataGridViewCell != null) { dataGridViewCell.TrueValueInternal = value; } } this.DataGridView.InvalidateColumn(this.Index); } } } } private bool ShouldSerializeDefaultCellStyle() { Object defaultNullValue; DataGridViewCheckBoxCell templateCell = this.CellTemplate as DataGridViewCheckBoxCell; if (templateCell == null) { Debug.Fail("we can't compute the default cell style w/o a template cell"); return true; } if (templateCell.ThreeState) { defaultNullValue = CheckState.Indeterminate; } else { defaultNullValue = false; } if (!this.HasDefaultCellStyle) { return false; } DataGridViewCellStyle defaultCellStyle = this.DefaultCellStyle; return (!defaultCellStyle.BackColor.IsEmpty || !defaultCellStyle.ForeColor.IsEmpty || !defaultCellStyle.SelectionBackColor.IsEmpty || !defaultCellStyle.SelectionForeColor.IsEmpty || defaultCellStyle.Font != null || !defaultCellStyle.NullValue.Equals(defaultNullValue) || !defaultCellStyle.IsDataSourceNullValueDefault || !String.IsNullOrEmpty(defaultCellStyle.Format) || !defaultCellStyle.FormatProvider.Equals(System.Globalization.CultureInfo.CurrentCulture) || defaultCellStyle.Alignment != DataGridViewContentAlignment.MiddleCenter || defaultCellStyle.WrapMode != DataGridViewTriState.NotSet || defaultCellStyle.Tag != null || !defaultCellStyle.Padding.Equals(Padding.Empty)); } /// public override string ToString() { StringBuilder sb = new StringBuilder(64); sb.Append("DataGridViewCheckBoxColumn { Name="); sb.Append(this.Name); sb.Append(", Index="); sb.Append(this.Index.ToString(CultureInfo.CurrentCulture)); sb.Append(" }"); return sb.ToString(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms { using System; using System.Text; using System.ComponentModel; using System.Diagnostics; using System.Drawing; using System.Diagnostics.CodeAnalysis; using System.Globalization; ///[ToolboxBitmapAttribute(typeof(DataGridViewCheckBoxColumn), "DataGridViewCheckBoxColumn.bmp")] public class DataGridViewCheckBoxColumn : DataGridViewColumn { /// public DataGridViewCheckBoxColumn() : this(false) { } /// [ SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors") // Can't think of a workaround. ] public DataGridViewCheckBoxColumn(bool threeState) : base(new DataGridViewCheckBoxCell(threeState)) { DataGridViewCellStyle defaultCellStyle = new DataGridViewCellStyle(); defaultCellStyle.AlignmentInternal = DataGridViewContentAlignment.MiddleCenter; if (threeState) { defaultCellStyle.NullValue = CheckState.Indeterminate; } else { defaultCellStyle.NullValue = false; } this.DefaultCellStyle = defaultCellStyle; } /// [ Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public override DataGridViewCell CellTemplate { get { return base.CellTemplate; } set { if (value != null && !(value is System.Windows.Forms.DataGridViewCheckBoxCell)) { throw new InvalidCastException(SR.GetString(SR.DataGridViewTypeColumn_WrongCellTemplateType, "System.Windows.Forms.DataGridViewCheckBoxCell")); } base.CellTemplate = value; } } private DataGridViewCheckBoxCell CheckBoxCellTemplate { get { return (DataGridViewCheckBoxCell) this.CellTemplate; } } /// [ Browsable(true), SRCategory(SR.CatAppearance), SRDescription(SR.DataGridView_ColumnDefaultCellStyleDescr) ] public override DataGridViewCellStyle DefaultCellStyle { get { return base.DefaultCellStyle; } set { base.DefaultCellStyle = value; } } /// [ DefaultValue(null), SRCategory(SR.CatData), SRDescription(SR.DataGridView_CheckBoxColumnFalseValueDescr), TypeConverter(typeof(StringConverter)) ] public object FalseValue { get { if (this.CheckBoxCellTemplate == null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewColumn_CellTemplateRequired)); } return this.CheckBoxCellTemplate.FalseValue; } set { if (this.FalseValue != value) { this.CheckBoxCellTemplate.FalseValueInternal = value; if (this.DataGridView != null) { DataGridViewRowCollection dataGridViewRows = this.DataGridView.Rows; int rowCount = dataGridViewRows.Count; for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) { DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex); DataGridViewCheckBoxCell dataGridViewCell = dataGridViewRow.Cells[this.Index] as DataGridViewCheckBoxCell; if (dataGridViewCell != null) { dataGridViewCell.FalseValueInternal = value; } } this.DataGridView.InvalidateColumn(this.Index); } } } } /// [ DefaultValue(FlatStyle.Standard), SRCategory(SR.CatAppearance), SRDescription(SR.DataGridView_CheckBoxColumnFlatStyleDescr) ] public FlatStyle FlatStyle { get { if (this.CheckBoxCellTemplate == null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewColumn_CellTemplateRequired)); } return this.CheckBoxCellTemplate.FlatStyle; } set { if (this.FlatStyle != value) { this.CheckBoxCellTemplate.FlatStyle = value; if (this.DataGridView != null) { DataGridViewRowCollection dataGridViewRows = this.DataGridView.Rows; int rowCount = dataGridViewRows.Count; for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) { DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex); DataGridViewCheckBoxCell dataGridViewCell = dataGridViewRow.Cells[this.Index] as DataGridViewCheckBoxCell; if (dataGridViewCell != null) { dataGridViewCell.FlatStyleInternal = value; } } this.DataGridView.OnColumnCommonChange(this.Index); } } } } /// [ DefaultValue(null), SRCategory(SR.CatData), SRDescription(SR.DataGridView_CheckBoxColumnIndeterminateValueDescr), TypeConverter(typeof(StringConverter)) ] public object IndeterminateValue { get { if (this.CheckBoxCellTemplate == null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewColumn_CellTemplateRequired)); } return this.CheckBoxCellTemplate.IndeterminateValue; } set { if (this.IndeterminateValue != value) { this.CheckBoxCellTemplate.IndeterminateValueInternal = value; if (this.DataGridView != null) { DataGridViewRowCollection dataGridViewRows = this.DataGridView.Rows; int rowCount = dataGridViewRows.Count; for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) { DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex); DataGridViewCheckBoxCell dataGridViewCell = dataGridViewRow.Cells[this.Index] as DataGridViewCheckBoxCell; if (dataGridViewCell != null) { dataGridViewCell.IndeterminateValueInternal = value; } } this.DataGridView.InvalidateColumn(this.Index); } } } } /// [ DefaultValue(false), SRCategory(SR.CatBehavior), SRDescription(SR.DataGridView_CheckBoxColumnThreeStateDescr) ] public bool ThreeState { get { if (this.CheckBoxCellTemplate == null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewColumn_CellTemplateRequired)); } return this.CheckBoxCellTemplate.ThreeState; } [ SuppressMessage("Microsoft.Performance", "CA1808:AvoidCallsThatBoxValueTypes") // OK to cast a NullValue into a bool and CheckState ] set { if (this.ThreeState != value) { this.CheckBoxCellTemplate.ThreeStateInternal = value; if (this.DataGridView != null) { DataGridViewRowCollection dataGridViewRows = this.DataGridView.Rows; int rowCount = dataGridViewRows.Count; for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) { DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex); DataGridViewCheckBoxCell dataGridViewCell = dataGridViewRow.Cells[this.Index] as DataGridViewCheckBoxCell; if (dataGridViewCell != null) { dataGridViewCell.ThreeStateInternal = value; } } this.DataGridView.InvalidateColumn(this.Index); } if (value && this.DefaultCellStyle.NullValue is bool && (bool) this.DefaultCellStyle.NullValue == false) { this.DefaultCellStyle.NullValue = CheckState.Indeterminate; } else if (!value && this.DefaultCellStyle.NullValue is CheckState && (CheckState) this.DefaultCellStyle.NullValue == CheckState.Indeterminate) { this.DefaultCellStyle.NullValue = false; } } } } /// [ DefaultValue(null), SRCategory(SR.CatData), SRDescription(SR.DataGridView_CheckBoxColumnTrueValueDescr), TypeConverter(typeof(StringConverter)) ] public object TrueValue { get { if (this.CheckBoxCellTemplate == null) { throw new InvalidOperationException(SR.GetString(SR.DataGridViewColumn_CellTemplateRequired)); } return this.CheckBoxCellTemplate.TrueValue; } set { if (this.TrueValue != value) { this.CheckBoxCellTemplate.TrueValueInternal = value; if (this.DataGridView != null) { DataGridViewRowCollection dataGridViewRows = this.DataGridView.Rows; int rowCount = dataGridViewRows.Count; for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) { DataGridViewRow dataGridViewRow = dataGridViewRows.SharedRow(rowIndex); DataGridViewCheckBoxCell dataGridViewCell = dataGridViewRow.Cells[this.Index] as DataGridViewCheckBoxCell; if (dataGridViewCell != null) { dataGridViewCell.TrueValueInternal = value; } } this.DataGridView.InvalidateColumn(this.Index); } } } } private bool ShouldSerializeDefaultCellStyle() { Object defaultNullValue; DataGridViewCheckBoxCell templateCell = this.CellTemplate as DataGridViewCheckBoxCell; if (templateCell == null) { Debug.Fail("we can't compute the default cell style w/o a template cell"); return true; } if (templateCell.ThreeState) { defaultNullValue = CheckState.Indeterminate; } else { defaultNullValue = false; } if (!this.HasDefaultCellStyle) { return false; } DataGridViewCellStyle defaultCellStyle = this.DefaultCellStyle; return (!defaultCellStyle.BackColor.IsEmpty || !defaultCellStyle.ForeColor.IsEmpty || !defaultCellStyle.SelectionBackColor.IsEmpty || !defaultCellStyle.SelectionForeColor.IsEmpty || defaultCellStyle.Font != null || !defaultCellStyle.NullValue.Equals(defaultNullValue) || !defaultCellStyle.IsDataSourceNullValueDefault || !String.IsNullOrEmpty(defaultCellStyle.Format) || !defaultCellStyle.FormatProvider.Equals(System.Globalization.CultureInfo.CurrentCulture) || defaultCellStyle.Alignment != DataGridViewContentAlignment.MiddleCenter || defaultCellStyle.WrapMode != DataGridViewTriState.NotSet || defaultCellStyle.Tag != null || !defaultCellStyle.Padding.Equals(Padding.Empty)); } /// public override string ToString() { StringBuilder sb = new StringBuilder(64); sb.Append("DataGridViewCheckBoxColumn { Name="); sb.Append(this.Name); sb.Append(", Index="); sb.Append(this.Index.ToString(CultureInfo.CurrentCulture)); sb.Append(" }"); return sb.ToString(); } } } // 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
- Misc.cs
- ElementAction.cs
- CorrelationTokenInvalidatedHandler.cs
- GridViewRowCollection.cs
- XLinq.cs
- _SecureChannel.cs
- SqlFactory.cs
- Token.cs
- HMACMD5.cs
- DrawingContext.cs
- SqlDataSourceAdvancedOptionsForm.cs
- CustomErrorsSection.cs
- PauseStoryboard.cs
- FontCacheUtil.cs
- UIPermission.cs
- UnionCqlBlock.cs
- OrderedDictionaryStateHelper.cs
- AttributeCallbackBuilder.cs
- BindingGroup.cs
- LookupNode.cs
- RightsManagementPermission.cs
- ApplicationId.cs
- Environment.cs
- TextContainerChangedEventArgs.cs
- Repeater.cs
- EntityViewContainer.cs
- RemotingServices.cs
- GreenMethods.cs
- XamlReader.cs
- userdatakeys.cs
- DataTableReader.cs
- XmlFormatExtensionPrefixAttribute.cs
- UnsafeNativeMethods.cs
- PeerApplication.cs
- DbProviderServices.cs
- SqlUtil.cs
- Rect.cs
- Transform3DGroup.cs
- ListViewTableRow.cs
- ToolStripSplitButton.cs
- Internal.cs
- StaticFileHandler.cs
- AppDomainCompilerProxy.cs
- TreeNodeBindingCollection.cs
- SyncOperationState.cs
- LinqDataSourceDisposeEventArgs.cs
- MenuItem.cs
- IgnoreDeviceFilterElement.cs
- WebHttpEndpoint.cs
- SrgsRulesCollection.cs
- SafeBitVector32.cs
- FixedTextView.cs
- SrgsToken.cs
- SerializerWriterEventHandlers.cs
- DoubleAnimationUsingKeyFrames.cs
- ImpersonateTokenRef.cs
- GlyphRunDrawing.cs
- KernelTypeValidation.cs
- CalendarAutoFormat.cs
- SurrogateDataContract.cs
- GeneralTransform.cs
- HttpCookieCollection.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- PeerCollaborationPermission.cs
- InvalidProgramException.cs
- SoapServerMessage.cs
- LiteralControl.cs
- XmlSchemaExternal.cs
- SiteOfOriginPart.cs
- SecureEnvironment.cs
- SqlProvider.cs
- COSERVERINFO.cs
- DriveInfo.cs
- RSACryptoServiceProvider.cs
- ConfigXmlDocument.cs
- FlowDocument.cs
- GlobalItem.cs
- RtType.cs
- EntitySqlQueryState.cs
- ManagementOperationWatcher.cs
- NativeMethods.cs
- SourceFileBuildProvider.cs
- ColorBlend.cs
- RenderDataDrawingContext.cs
- SafeEventLogWriteHandle.cs
- OrderByQueryOptionExpression.cs
- RowVisual.cs
- SiteMapPathDesigner.cs
- RemoteWebConfigurationHostServer.cs
- NullableDoubleMinMaxAggregationOperator.cs
- TransactionTable.cs
- WindowsGraphics.cs
- DataGridViewRowsRemovedEventArgs.cs
- SpanIndex.cs
- NodeFunctions.cs
- ScrollBar.cs
- ExtendedPropertyDescriptor.cs
- PassportAuthenticationEventArgs.cs
- ParameterModifier.cs
- ClrProviderManifest.cs