Данная статья переведена с помощью средств машинного перевода. Чтобы просмотреть ее на английском языке, установите флажок Английский. Вы также можете просматривать английский текст во всплывающем окне, наводя указатель мыши на переведенный текст.
Перевод
Английский

Класс DataGridViewColumn

 

Представляет столбец в DataGridView элемента управления.

Пространство имен:   System.Windows.Forms
Сборка:  System.Windows.Forms (в System.Windows.Forms.dll)


public class DataGridViewColumn : DataGridViewBand, IComponent, 
	IDisposable

ИмяОписание
System_CAPS_pubmethodDataGridViewColumn()

Инициализирует новый экземпляр DataGridViewColumn класс в состояние по умолчанию.

System_CAPS_pubmethodDataGridViewColumn(DataGridViewCell)

Инициализирует новый экземпляр DataGridViewColumn класса с помощью существующего DataGridViewCell как шаблон.

ИмяОписание
System_CAPS_pubpropertyAutoSizeMode

Возвращает или задает режим, в котором автоматически изменяется ширина столбца.

System_CAPS_pubpropertyCellTemplate

Возвращает или задает шаблон, используемый для создания ячеек.

System_CAPS_pubpropertyCellType

Возвращает тип времени выполнения шаблона ячеек.

System_CAPS_pubpropertyContextMenuStrip

Возвращает или задает контекстное меню для столбца.(Переопределяет DataGridViewBand.ContextMenuStrip.)

System_CAPS_pubpropertyDataGridView

Возвращает DataGridView элемента управления, связанного с данным элементом.(Наследуется от DataGridViewElement.)

System_CAPS_pubpropertyDataPropertyName

Возвращает или задает имя столбца, свойство или базы данных источника данных, к которому DataGridViewColumn привязан.

System_CAPS_pubpropertyDefaultCellStyle

Возвращает или задает стиль по умолчанию для ячеек столбца.(Переопределяет DataGridViewBand.DefaultCellStyle.)

System_CAPS_pubpropertyDefaultHeaderCellType

Возвращает или задает тип времени выполнения для ячейки заголовка по умолчанию.(Наследуется от DataGridViewBand.)

System_CAPS_pubpropertyDisplayed

Возвращает значение, указывающее, было ли диапазон в текущий момент отображается на экране.(Наследуется от DataGridViewBand.)

System_CAPS_pubpropertyDisplayIndex

Возвращает или задает расположение столбца относительно столбцов, отображаемых в текущий момент.

System_CAPS_pubpropertyDividerWidth

Возвращает или задает ширину (в пикселях) разделителя столбца.

System_CAPS_pubpropertyFillWeight

Возвращает или задает значение, представляющее ширину столбца, находящегося в режиме заполнения, относительно ширины других столбцов элемента управления, находящихся в этом режиме.

System_CAPS_pubpropertyFrozen

Возвращает или задает значение, указывающее, перемещается ли столбец, когда пользователь выполняет прокрутку DataGridView управления по горизонтали.(Переопределяет DataGridViewBand.Frozen.)

System_CAPS_pubpropertyHasDefaultCellStyle

Возвращает значение, указывающее, является ли DefaultCellStyle Свойства.(Наследуется от DataGridViewBand.)

System_CAPS_pubpropertyHeaderCell

Возвращает или задает DataGridViewColumnHeaderCell представляющий заголовок столбца.

System_CAPS_protpropertyHeaderCellCore

Возвращает или задает ячейку заголовка DataGridViewBand.(Наследуется от DataGridViewBand.)

System_CAPS_pubpropertyHeaderText

Возвращает или задает текст ячейки заголовка столбца.

System_CAPS_pubpropertyIndex

Возвращает относительное положение диапазона в DataGridView элемента управления.(Наследуется от DataGridViewBand.)

System_CAPS_pubpropertyInheritedAutoSizeMode

Возвращает или задает режим изменения размера, действующий для столбца.

System_CAPS_pubpropertyInheritedStyle

Возвращает стиль ячейки, применяемый в текущий момент к столбцу.(Переопределяет DataGridViewBand.InheritedStyle.)

System_CAPS_pubpropertyIsDataBound

Возвращает значение, указывающее, связан ли столбец с источником данных.

System_CAPS_protpropertyIsRow

Возвращает значение, указывающее, представляет ли диапазон строку.(Наследуется от DataGridViewBand.)

System_CAPS_pubpropertyMinimumWidth

Возвращает или задает наименьшую ширину столбца (в пикселях).

System_CAPS_pubpropertyName

Возвращает или задает имя столбца.

System_CAPS_pubpropertyReadOnly

Возвращает или задает значение, указывающее, может ли пользователь изменять ячейки столбца.(Переопределяет DataGridViewBand.ReadOnly.)

System_CAPS_pubpropertyResizable

Возвращает или задает значение, указывающее, возможно ли изменение размера столбца.(Переопределяет DataGridViewBand.Resizable.)

System_CAPS_pubpropertySelected

Возвращает или задает значение, указывающее, является ли диапазон состояние выбранного пользовательского интерфейса (UI).(Наследуется от DataGridViewBand.)

System_CAPS_pubpropertySite

Этот API поддерживает инфраструктуру продукт, и его не следует использовать напрямую из кода. Возвращает или задает подложку столбца.

System_CAPS_pubpropertySortMode

Возвращает или задает режим сортировки для столбца.

System_CAPS_pubpropertyState

Получает состояние пользовательского интерфейса (UI) элемента.(Наследуется от DataGridViewElement.)

System_CAPS_pubpropertyTag

Возвращает или задает объект, содержащий данные, связанные с диапазоном.(Наследуется от DataGridViewBand.)

System_CAPS_pubpropertyToolTipText

Возвращает или задает текст, используемый для подсказок.

System_CAPS_pubpropertyValueType

Возвращает или задает тип данных для значений в ячейках столбца.

System_CAPS_pubpropertyVisible

Возвращает или задает значение, указывающее, является ли столбец видимым.(Переопределяет DataGridViewBand.Visible.)

System_CAPS_pubpropertyWidth

Возвращает или задает текущую ширину столбца.

ИмяОписание
System_CAPS_pubmethodClone()

Создает точную копию данного диапазона.(Переопределяет DataGridViewBand.Clone().)

System_CAPS_pubmethodDispose()

Освобождает все ресурсы, занятые модулем DataGridViewBand.(Наследуется от DataGridViewBand.)

System_CAPS_protmethodDispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом DataGridViewBand, а при необходимости освобождает также управляемые ресурсы.(Переопределяет DataGridViewBand.Dispose(Boolean).)

System_CAPS_pubmethodEquals(Object)

Определяет, равен ли заданный объект текущему объекту.(Наследуется от Object.)

System_CAPS_protmethodFinalize()

Освобождает ресурсы, связанные с диапазоном.(Наследуется от DataGridViewBand.)

System_CAPS_pubmethodGetHashCode()

Служит хэш-функцией по умолчанию.(Наследуется от Object.)

System_CAPS_pubmethodGetPreferredWidth(DataGridViewAutoSizeColumnMode, Boolean)

Вычисляет оптимальную ширину столбца на основе указанных критериев.

System_CAPS_pubmethodGetType()

Возвращает объект Type для текущего экземпляра.(Наследуется от Object.)

System_CAPS_protmethodMemberwiseClone()

Создает неполную копию текущего объекта Object.(Наследуется от Object.)

System_CAPS_protmethodOnDataGridViewChanged()

Вызывается, когда диапазон связан с другим DataGridView.(Наследуется от DataGridViewBand.)

System_CAPS_protmethodRaiseCellClick(DataGridViewCellEventArgs)

Вызывает событие DataGridView.CellClick.(Наследуется от DataGridViewElement.)

System_CAPS_protmethodRaiseCellContentClick(DataGridViewCellEventArgs)

Вызывает событие DataGridView.CellContentClick.(Наследуется от DataGridViewElement.)

System_CAPS_protmethodRaiseCellContentDoubleClick(DataGridViewCellEventArgs)

Вызывает событие DataGridView.CellContentDoubleClick.(Наследуется от DataGridViewElement.)

System_CAPS_protmethodRaiseCellValueChanged(DataGridViewCellEventArgs)

Вызывает событие DataGridView.CellValueChanged.(Наследуется от DataGridViewElement.)

System_CAPS_protmethodRaiseDataError(DataGridViewDataErrorEventArgs)

Вызывает событие DataGridView.DataError.(Наследуется от DataGridViewElement.)

System_CAPS_protmethodRaiseMouseWheel(MouseEventArgs)

Вызывает событие Control.MouseWheel.(Наследуется от DataGridViewElement.)

System_CAPS_pubmethodToString()

Возвращает строку, описывающую столбец.(Переопределяет DataGridViewBand.ToString().)

ИмяОписание
System_CAPS_pubeventDisposed

Происходит при DataGridViewColumn удаляется.

DataGridViewColumn Класс представляет логический столбец в DataGridView элемента управления. Вы можете получить столбцов с помощью Columns коллекцию элементов управления.

В отличие от DataGridViewRow, который содержит фактические коллекцию ячеек в DataGridView, DataGridViewColumn используется главным образом для того, чтобы настроить внешний вид и поведение столбца пользовательский интерфейс (UI), такие как столбец ширину и стиль ячейки. Дополнительные сведения о стилях ячеек см. в разделе Стили ячеек элемента управления DataGridView в Windows Forms.

Типы, производные от DataGridViewColumn обычно инициализации CellTemplate свойство к новому экземпляру связанный тип производным от DataGridViewCell класса. Все свойства столбцов, связанных с внешнего вида и поведения отдельных ячеек являются оболочками соответствующих свойств ячеек шаблона. Изменение одного из этих свойств у столбца автоматически изменяет значение в шаблоне ячеек и для всех ячеек в столбце. Чтобы переопределить заданное значение для отдельных ячеек, установите значения ячеек после установки значения столбца.

Заметки для разработчиков производных классов:

При наследовании от DataGridViewColumn и добавлять новые свойства производного класса, необходимо переопределить Clone метод, чтобы скопировать новые свойства во время операций копирования. Также следует вызвать базовый класс Clone метод, чтобы свойства базового класса копировались в новую ячейку.

В следующем примере кода создается форма Windows с DataGridView и набор кнопок. Каждая метка кнопки описывает операции, связанные с DataGridViewColumn Свойства, такие как смена первый и последний столбец (с помощью DisplayIndex Свойства) или изменять текст заголовка столбца (с помощью HeaderText свойство). После нажатия кнопки меняется связанные свойства DataGridViewColumn.

using System.Windows.Forms;
using System;
using System.Drawing;

public class DataGridViewColumnDemo : Form
{
    #region "set up form"
    public DataGridViewColumnDemo()
    {
        InitializeComponent();

        AddButton(Button1, "Reset",
            new EventHandler(ResetToDisorder));
        AddButton(Button2, "Change Column 3 Header",
            new EventHandler(ChangeColumn3Header));
        AddButton(Button3, "Change Meatloaf Recipe",
            new EventHandler(ChangeMeatloafRecipe));
        AddAdditionalButtons();

        InitializeDataGridView();
    }

    DataGridView dataGridView;
    Button Button1 = new Button();
    Button Button2 = new Button();
    Button Button3 = new Button();
    Button Button4 = new Button();
    Button Button5 = new Button();
    Button Button6 = new Button();
    Button Button7 = new Button();
    Button Button8 = new Button();
    Button Button9 = new Button();
    Button Button10 = new Button();
    FlowLayoutPanel FlowLayoutPanel1 = new FlowLayoutPanel();

    private void InitializeComponent()
    {
        FlowLayoutPanel1.Location = new Point(454, 0);
        FlowLayoutPanel1.AutoSize = true;
        FlowLayoutPanel1.FlowDirection = FlowDirection.TopDown;
        FlowLayoutPanel1.Name = "flowlayoutpanel";
        ClientSize = new System.Drawing.Size(614, 360);
        Controls.Add(this.FlowLayoutPanel1);
        Text = this.GetType().Name;
        AutoSize = true;
    }
    #endregion

    #region "set up DataGridView"

    private string thirdColumnHeader = "Main Ingredients";
    private string boringMeatloaf = "ground beef";
    private string boringMeatloafRanking = "*";
    private bool boringRecipe;
    private bool shortMode;

    private void InitializeDataGridView()
    {
        dataGridView = new System.Windows.Forms.DataGridView();
        Controls.Add(dataGridView);
        dataGridView.Size = new Size(300, 200);

        // Create an unbound DataGridView by declaring a
        // column count.
        dataGridView.ColumnCount = 4;
        AdjustDataGridViewSizing();

        // Set the column header style.
        DataGridViewCellStyle columnHeaderStyle =
            new DataGridViewCellStyle();
        columnHeaderStyle.BackColor = Color.Aqua;
        columnHeaderStyle.Font =
            new Font("Verdana", 10, FontStyle.Bold);
        dataGridView.ColumnHeadersDefaultCellStyle =
            columnHeaderStyle;

        // Set the column header names.
        dataGridView.Columns[0].Name = "Recipe";
        dataGridView.Columns[1].Name = "Category";
        dataGridView.Columns[2].Name = thirdColumnHeader;
        dataGridView.Columns[3].Name = "Rating";

        PostColumnCreation();

        // Populate the rows.
        string[] row1 = new string[]{"Meatloaf", 
                                        "Main Dish", boringMeatloaf, boringMeatloafRanking};
        string[] row2 = new string[]{"Key Lime Pie", 
                                        "Dessert", "lime juice, evaporated milk", "****"};
        string[] row3 = new string[]{"Orange-Salsa Pork Chops", 
                                        "Main Dish", "pork chops, salsa, orange juice", "****"};
        string[] row4 = new string[]{"Black Bean and Rice Salad", 
                                        "Salad", "black beans, brown rice", "****"};
        string[] row5 = new string[]{"Chocolate Cheesecake", 
                                        "Dessert", "cream cheese", "***"};
        string[] row6 = new string[]{"Black Bean Dip", "Appetizer",
                                        "black beans, sour cream", "***"};
        object[] rows = new object[] { row1, row2, row3, row4, row5, row6 };

        foreach (string[] rowArray in rows)
        {
            dataGridView.Rows.Add(rowArray);
        }

        shortMode = false;
        boringRecipe = true;
    }

    private void AddButton(Button button, string buttonLabel,
        EventHandler handler)
    {
        FlowLayoutPanel1.Controls.Add(button);
        button.TabIndex = FlowLayoutPanel1.Controls.Count;
        button.Text = buttonLabel;
        button.AutoSize = true;
        button.Click += handler;
    }

    private void ResetToDisorder(object sender, System.EventArgs e)
    {
        Controls.Remove(dataGridView);
        dataGridView.Dispose();
        InitializeDataGridView();
    }

    private void ChangeColumn3Header(object sender,
        System.EventArgs e)
    {
        Toggle(ref shortMode);
        if (shortMode)
        { dataGridView.Columns[2].HeaderText = "S"; }
        else
        { dataGridView.Columns[2].HeaderText = thirdColumnHeader; }
    }

    private static void Toggle(ref bool toggleThis)
    {
        toggleThis = !toggleThis;
    }

    private void ChangeMeatloafRecipe(object sender,
        System.EventArgs e)
    {
        Toggle(ref boringRecipe);
        if (boringRecipe)
        {
            SetMeatloaf(boringMeatloaf, boringMeatloafRanking);
        }
        else
        {
            string greatMeatloafRecipe =
                "1 lb. lean ground beef, " +
                "1/2 cup bread crumbs, 1/4 cup ketchup," +
                "1/3 tsp onion powder, " +
                "1 clove of garlic, 1/2 pack onion soup mix " +
                " dash of your favorite BBQ Sauce";
            SetMeatloaf(greatMeatloafRecipe, "***");
        }
    }

    private void SetMeatloaf(string recipe, string rating)
    {
        dataGridView.Rows[0].Cells[2].Value = recipe;
        dataGridView.Rows[0].Cells[3].Value = rating;
    }
    #endregion

    #region "demonstration code"
    private void PostColumnCreation()
    {
        AddContextLabel();
        AddCriteriaLabel();
        CustomizeCellsInThirdColumn();
        AddContextMenu();
        SetDefaultCellInFirstColumn();
        ToolTips();

        dataGridView.CellMouseEnter +=
            dataGridView_CellMouseEnter;
        dataGridView.AutoSizeColumnModeChanged +=
            dataGridView_AutoSizeColumnModeChanged;
    }

    private string criteriaLabel = "Column 3 sizing criteria: ";
    private void AddCriteriaLabel()
    {
        AddLabelToPanelIfNotAlreadyThere(criteriaLabel,
            criteriaLabel +
            dataGridView.Columns[2].AutoSizeMode.ToString() +
            ".");
    }

    private void AddContextLabel()
    {
        string labelName = "label";
        AddLabelToPanelIfNotAlreadyThere(labelName,
            "Use shortcut menu to change cell color.");
    }

    private void AddLabelToPanelIfNotAlreadyThere(
        string labelName, string labelText)
    {
        Label label;
        if (FlowLayoutPanel1.Controls[labelName] == null)
        {
            label = new Label();
            label.AutoSize = true;
            label.Name = labelName;
            label.BackColor = Color.Bisque;
            FlowLayoutPanel1.Controls.Add(label);
        }
        else
        {
            label = (Label)FlowLayoutPanel1.Controls[labelName];
        }
        label.Text = labelText;
    }

    private void CustomizeCellsInThirdColumn()
    {
        int thirdColumn = 2;
        DataGridViewColumn column =
            dataGridView.Columns[thirdColumn];
        DataGridViewCell cell = new DataGridViewTextBoxCell();

        cell.Style.BackColor = Color.Wheat;
        column.CellTemplate = cell;
    }

    ToolStripMenuItem toolStripItem1 = new ToolStripMenuItem();

    private void AddContextMenu()
    {
        toolStripItem1.Text = "Redden";
        toolStripItem1.Click += new EventHandler(toolStripItem1_Click);
        ContextMenuStrip strip = new ContextMenuStrip();
        foreach (DataGridViewColumn column in dataGridView.Columns)
        {

            column.ContextMenuStrip = strip;
            column.ContextMenuStrip.Items.Add(toolStripItem1);
        }
    }

    private DataGridViewCellEventArgs mouseLocation;

    // Change the cell's color.
    private void toolStripItem1_Click(object sender, EventArgs args)
    {
        dataGridView.Rows[mouseLocation.RowIndex]
            .Cells[mouseLocation.ColumnIndex].Style.BackColor
            = Color.Red;
    }

    // Deal with hovering over a cell.
    private void dataGridView_CellMouseEnter(object sender,
        DataGridViewCellEventArgs location)
    {
        mouseLocation = location;
    }

    private void SetDefaultCellInFirstColumn()
    {
        DataGridViewColumn firstColumn = dataGridView.Columns[0];
        DataGridViewCellStyle cellStyle =
            new DataGridViewCellStyle();
        cellStyle.BackColor = Color.Thistle;

        firstColumn.DefaultCellStyle = cellStyle;
    }


    private void ToolTips()
    {
        DataGridViewColumn firstColumn = dataGridView.Columns[0];
        DataGridViewColumn thirdColumn = dataGridView.Columns[2];
        firstColumn.ToolTipText =
            "This column uses a default cell.";
        thirdColumn.ToolTipText =
            "This column uses a template cell." +
            " Style changes to one cell apply to all cells.";
    }

    private void AddAdditionalButtons()
    {
        AddButton(Button4, "Set Minimum Width of Column Two",
            new EventHandler(Button4_Click));
        AddButton(Button5, "Set Width of Column One",
            new EventHandler(Button5_Click));
        AddButton(Button6, "Autosize Third Column",
            new EventHandler(Button6_Click));
        AddButton(Button7, "Add Thick Vertical Edge",
            new EventHandler(Button7_Click));
        AddButton(Button8, "Style and Number Columns",
            new EventHandler(Button8_Click));
        AddButton(Button9, "Change Column Header Text",
            new EventHandler(Button9_Click));
        AddButton(Button10, "Swap First and Last Columns",
            new EventHandler(Button10_Click));
    }

    private void AdjustDataGridViewSizing()
    {
        dataGridView.ColumnHeadersHeightSizeMode = 
            DataGridViewColumnHeadersHeightSizeMode.AutoSize;
    }

    //Set the minimum width.
    private void Button4_Click(object sender,
        System.EventArgs e)
    {
        DataGridViewColumn column = dataGridView.Columns[1];
        column.MinimumWidth = 40;
    }

    // Set the width.
    private void Button5_Click(object sender, System.EventArgs e)
    {
        DataGridViewColumn column = dataGridView.Columns[0];
        column.Width = 60;
    }


    // AutoSize the third column.
    private void Button6_Click(object sender,
        System.EventArgs e)
    {
        DataGridViewColumn column = dataGridView.Columns[2];
        column.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
    }

    // Set the vertical edge.
    private void Button7_Click(object sender,
        System.EventArgs e)
    {
        int thirdColumn = 2;
        DataGridViewColumn column =
            dataGridView.Columns[thirdColumn];
        column.DividerWidth = 10;
    }

    // Style and number columns.
    private void Button8_Click(object sender,
        EventArgs args)
    {
        DataGridViewCellStyle style = new DataGridViewCellStyle();
        style.Alignment =
            DataGridViewContentAlignment.MiddleCenter;
        style.ForeColor = Color.IndianRed;
        style.BackColor = Color.Ivory;

        foreach (DataGridViewColumn column in dataGridView.Columns)
        {
            column.HeaderCell.Value = column.Index.ToString();
            column.HeaderCell.Style = style;
        }
    }

    // Change the text in the column header.
    private void Button9_Click(object sender,
        EventArgs args)
    {
        foreach (DataGridViewColumn column in dataGridView.Columns)
        {

            column.HeaderText = String.Concat("Column ",
                column.Index.ToString());
        }
    }

    // Swap the last column with the first.
    private void Button10_Click(object sender, EventArgs args)
    {
        DataGridViewColumnCollection columnCollection = dataGridView.Columns;

        DataGridViewColumn firstVisibleColumn =
            columnCollection.GetFirstColumn(DataGridViewElementStates.Visible);
        DataGridViewColumn lastVisibleColumn =
            columnCollection.GetLastColumn(
                DataGridViewElementStates.Visible, DataGridViewElementStates.None);

        int firstColumn_sIndex = firstVisibleColumn.DisplayIndex;
        firstVisibleColumn.DisplayIndex = lastVisibleColumn.DisplayIndex;
        lastVisibleColumn.DisplayIndex = firstColumn_sIndex;
    }

    // Updated the criteria label.
    private void dataGridView_AutoSizeColumnModeChanged(object sender,
        DataGridViewAutoSizeColumnModeEventArgs args)
    {
        args.Column.DataGridView.Parent.
            Controls["flowlayoutpanel"].Controls[criteriaLabel].
            Text = criteriaLabel
            + args.Column.AutoSizeMode.ToString();
    }
    #endregion

    [STAThreadAttribute()]
    public static void Main()
    {
        Application.Run(new DataGridViewColumnDemo());
    }

}

.NET Framework
Доступно с 2.0

Любые открытые статические элементы ( Предоставлен общий доступ в Visual Basic) этого типа являются потокобезопасными. Потокобезопасность элементов экземпляров не гарантируется.

Вернуться в начало
Показ: