Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- ZipIOFileItemStream.cs
- followingsibling.cs
- BitmapPalettes.cs
- DtdParser.cs
- SamlAction.cs
- SerialErrors.cs
- CryptoKeySecurity.cs
- TextServicesProperty.cs
- NativeMethods.cs
- ResXResourceSet.cs
- StrokeNode.cs
- QueryExpr.cs
- PaintEvent.cs
- MsmqIntegrationProcessProtocolHandler.cs
- MenuAdapter.cs
- TransformerInfo.cs
- ResourcePermissionBaseEntry.cs
- PropertyFilterAttribute.cs
- QueryStringParameter.cs
- ProtectedConfiguration.cs
- DataGridViewLinkCell.cs
- TypefaceMap.cs
- ChannelParameterCollection.cs
- BrowserCapabilitiesFactoryBase.cs
- MimeTextImporter.cs
- LiteralControl.cs
- FontWeights.cs
- AssociationSet.cs
- TimeoutHelper.cs
- ManagementException.cs
- GridViewAutomationPeer.cs
- CallContext.cs
- SiteMapNode.cs
- DatatypeImplementation.cs
- VariantWrapper.cs
- ContainsSearchOperator.cs
- CaseInsensitiveComparer.cs
- Bits.cs
- MeshGeometry3D.cs
- DataGridViewCellParsingEventArgs.cs
- TextFormatterHost.cs
- RepeaterItemEventArgs.cs
- AutomationIdentifier.cs
- PersonalizationEntry.cs
- XmlAttributeCache.cs
- SessionPageStateSection.cs
- SiteMapNodeItem.cs
- SystemUnicastIPAddressInformation.cs
- BreakRecordTable.cs
- TemplateXamlTreeBuilder.cs
- DataGridViewRowsRemovedEventArgs.cs
- ClientSettingsStore.cs
- ParenExpr.cs
- path.cs
- ManagedIStream.cs
- File.cs
- COM2PropertyDescriptor.cs
- SqlUnionizer.cs
- AssemblyCollection.cs
- PreProcessInputEventArgs.cs
- ConfigurationLocationCollection.cs
- QilGenerator.cs
- ShutDownListener.cs
- WebPartMovingEventArgs.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- EncodingStreamWrapper.cs
- XmlWriterDelegator.cs
- RadioButtonList.cs
- HideDisabledControlAdapter.cs
- WebZoneDesigner.cs
- NeutralResourcesLanguageAttribute.cs
- Sql8ConformanceChecker.cs
- ReachNamespaceInfo.cs
- ClusterUtils.cs
- SafeBitVector32.cs
- Splitter.cs
- DataGridViewCellEventArgs.cs
- InkPresenter.cs
- XMLDiffLoader.cs
- UntypedNullExpression.cs
- Menu.cs
- DaylightTime.cs
- OutputCacheModule.cs
- StagingAreaInputItem.cs
- TabItemWrapperAutomationPeer.cs
- SoapProtocolImporter.cs
- EmptyControlCollection.cs
- DynamicValueConverter.cs
- DatePickerAutomationPeer.cs
- altserialization.cs
- _SslState.cs
- Module.cs
- Message.cs
- Line.cs
- ColorKeyFrameCollection.cs
- MessageDecoder.cs
- GeometryCollection.cs
- BitmapEffectInputConnector.cs
- LineMetrics.cs
- InitializerFacet.cs