| File: System\Windows\Forms\Controls\DataGridView\DataGridViewElement.cs | Web Access |
| Project: ..\..\..\src\winforms\src\System.Windows.Forms\System.Windows.Forms.csproj (System.Windows.Forms) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.ComponentModel; namespace System.Windows.Forms; /// <summary> /// Identifies an element in the dataGridView (base class for TCell, TBand, TRow, TColumn. /// </summary> public class DataGridViewElement { private DataGridView? _dataGridView; /// <summary> /// Initializes a new instance of the <see cref="DataGridViewElement"/> class. /// </summary> public DataGridViewElement() { // These are subclasses of the DataGridViewElement for which we don't need to call the finalizer, because it's empty. // See https://github.com/dotnet/winforms/issues/6858. if (GetType() == typeof(DataGridViewBand) || GetType() == typeof(DataGridViewColumn) || GetType() == typeof(DataGridViewButtonColumn) || GetType() == typeof(DataGridViewCheckBoxColumn) || GetType() == typeof(DataGridViewComboBoxColumn) || GetType() == typeof(DataGridViewImageColumn) || GetType() == typeof(DataGridViewLinkColumn) || GetType() == typeof(DataGridViewTextBoxColumn) || GetType() == typeof(DataGridViewRow) || GetType() == typeof(DataGridViewCell) || GetType() == typeof(DataGridViewButtonCell) || GetType() == typeof(DataGridViewCheckBoxCell) || GetType() == typeof(DataGridViewComboBoxCell) || GetType() == typeof(DataGridViewHeaderCell) || GetType() == typeof(DataGridViewColumnHeaderCell) || GetType() == typeof(DataGridViewTopLeftHeaderCell) || GetType() == typeof(DataGridViewRowHeaderCell) || GetType() == typeof(DataGridViewImageCell) || GetType() == typeof(DataGridViewLinkCell) || GetType() == typeof(DataGridViewTextBoxCell)) { GC.SuppressFinalize(this); } State = DataGridViewElementStates.Visible; } internal DataGridViewElement(DataGridViewElement dgveTemplate) { // Selected and Displayed states are not inherited State = dgveTemplate.State & (DataGridViewElementStates.Frozen | DataGridViewElementStates.ReadOnly | DataGridViewElementStates.Resizable | DataGridViewElementStates.ResizableSet | DataGridViewElementStates.Visible); } [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Advanced)] public virtual DataGridViewElementStates State { get; internal set; } internal bool StateIncludes(DataGridViewElementStates elementState) { return (State & elementState) == elementState; } internal bool StateExcludes(DataGridViewElementStates elementState) { return (State & elementState) == 0; } [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public DataGridView? DataGridView { get => _dataGridView; internal set { if (_dataGridView != value) { _dataGridView = value; OnDataGridViewChanged(); } } } protected virtual void OnDataGridViewChanged() { } protected void RaiseCellClick(DataGridViewCellEventArgs e) { _dataGridView?.OnCellClickInternal(e); } protected void RaiseCellContentClick(DataGridViewCellEventArgs e) { _dataGridView?.OnCellContentClickInternal(e); } protected void RaiseCellContentDoubleClick(DataGridViewCellEventArgs e) { _dataGridView?.OnCellContentDoubleClickInternal(e); } protected void RaiseCellValueChanged(DataGridViewCellEventArgs e) { _dataGridView?.OnCellValueChangedInternal(e); } protected void RaiseDataError(DataGridViewDataErrorEventArgs e) { _dataGridView?.OnDataErrorInternal(e); } protected void RaiseMouseWheel(MouseEventArgs e) { _dataGridView?.OnMouseWheelInternal(e); } }