Эта документация перемещена в архив и не поддерживается.

DataGridView - класс

Обновлен: Ноябрь 2007

Отображает данные в настраиваемой сетке.

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

[ComplexBindingPropertiesAttribute("DataSource", "DataMember")]
[ComVisibleAttribute(true)]
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)]
[DockingAttribute(DockingBehavior.Ask)]
public class DataGridView : Control, 
	ISupportInitialize
/** @attribute ComplexBindingPropertiesAttribute("DataSource", "DataMember") */
/** @attribute ComVisibleAttribute(true) */
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */
/** @attribute DockingAttribute(DockingBehavior.Ask) */
public class DataGridView extends Control implements ISupportInitialize
public class DataGridView extends Control implements ISupportInitialize

Элемент управления DataGridView предоставляет настраиваемую таблицу для отображения данных. Класс DataGridView допускает настройку ячеек, строк, столбцов и границ с помощью использования свойств, таких как DefaultCellStyle, ColumnHeadersDefaultCellStyle, CellBorderStyle и GridColor. Дополнительные сведения см. в разделе Базовое форматирование и оформление элемента управления DataGridView в Windows Forms.

Можно воспользоваться элементом управления DataGridView для отображения данных вместе с источником базовых данных или без него. Не указывая источник данных, можно создать столбцы и строки, содержащие данные, и добавить их непосредственно в объект DataGridView с помощью свойств Rows и Columns. Можно также использовать коллекцию Rows для доступа к объектам DataGridViewRow и свойство DataGridViewRow.Cells для непосредственного считывания или записи значения ячейки. Индексатор Item также обеспечивает прямой доступ к ячейкам.

В качестве альтернативы заполнению элемента управления вручную можно задать свойства DataSource и DataMember, чтобы привязать объект DataGridView к источнику данных и автоматически заполнить его данными. Дополнительные сведения см. в разделе Отображение данных с помощью элемента управления DataGridView в Windows Forms.

При работе с очень большими объемами данных можно задать для свойства VirtualMode значение true, чтобы отобразить подмножество доступных данных. Виртуальный режим требует реализацию кэша данных, из которого будет заполняться элемент управления DataGridView. Дополнительные сведения см. в разделе Режимы отображения данных в элементе управления DataGridView в Windows Forms.

Дополнительные сведения о возможностях доступных в объекте DataGridView в разделе элемент управления DataGridView (Windows Forms). В следующей таблице приводятся прямые ссылки на общие задачи.

TopicLocation
Практическое руководство. Привязка данных к элементу управления DataGridView в Windows FormsЭлементы управления Windows Forms, используемые в пакете .NET Framework SDK
Практическое руководство. Определение текста всплывающих подсказок для отдельных ячеек элемента управления DataGridView в Windows FormsЭлементы управления Windows Forms, используемые в пакете .NET Framework SDK
Практическое руководство. Настройка шрифтов и цветов в элементе управления DataGridView в Windows FormsЭлементы управления Windows Forms, используемые в пакете .NET Framework SDK
Практическое руководство. Изменение типа столбца DataGridView в формах Windows Forms с помощью конструктораЭлементы управления Windows Forms
Практическое руководство. Привязка данных к элементу управления DataGridView в форме Windows Forms с помощью конструктораЭлементы управления Windows Forms
Практическое руководство. Установка стилей для ячейки по умолчанию и форматов данных в элементе управления DataGridView формы Windows Forms с помощью конструктораЭлементы управления Windows Forms
Практическое руководство. Форматирование данных элемента управления DataGridView в Windows FormsЭлементы управления Windows Forms, используемые в пакете .NET Framework SDK
Пример. Проверка данных элемента управления DataGridView в Windows FormsЭлементы управления Windows Forms, используемые в пакете .NET Framework SDK
Практическое руководство. Настройка форматирования данных элемента управления DataGridView в Windows FormsЭлементы управления Windows Forms, используемые в пакете .NET Framework SDK
Пример. Создание главного и подчиненного представлений данных с использованием двух элементов управления DataGridView в Windows FormsЭлементы управления Windows Forms, используемые в пакете .NET Framework SDK
Практическое руководство. Привязка данных к элементу управления DataGridView в Windows Formsdv_fxmclictl
Практическое руководство. Определение текста всплывающих подсказок для отдельных ячеек элемента управления DataGridView в Windows Formsdv_fxmclictl
Практическое руководство. Изменение типа столбца DataGridView в формах Windows Forms с помощью конструктораdv_mclictl
Практическое руководство. Привязка данных к элементу управления DataGridView в форме Windows Forms с помощью конструктораdv_mclictl
Практическое руководство. Установка стилей для ячейки по умолчанию и форматов данных в элементе управления DataGridView формы Windows Forms с помощью конструктораdv_mclictl
Практическое руководство. Настройка шрифтов и цветов в элементе управления DataGridView в Windows Formsdv_fxmclictl
Практическое руководство. Форматирование данных элемента управления DataGridView в Windows Formsdv_fxmclictl
Пример. Проверка данных элемента управления DataGridView в Windows Formsdv_fxmclictl
Практическое руководство. Настройка форматирования данных элемента управления DataGridView в Windows Formsdv_fxmclictl
Пример. Создание главного и подчиненного представлений данных с использованием двух элементов управления DataGridView в Windows Formsdv_fxmclictl

Хотя элемент управления DataGridView заменяет и добавляет функциональные возможности к элементу управления DataGrid предыдущих версий, элемент управления DataGrid сохраняет для обоих элементов обратную совместимость и возможность использования в будущем по желанию пользователя. Дополнительные сведения см. в разделе Различия элементов управления DataGridView и DataGrid в Windows Forms.

wc5cbb9z.alert_note(ru-ru,VS.90).gifПримечание.

Элемент управления DataGridView наследует оба свойства ContextMenu и ContextMenuStrip из объекта Control, однако поддерживает только свойство ContextMenuStrip. Использование свойства ContextMenu с элементом управления DataGridView не дает эффекта.

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

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

public class Form1 : System.Windows.Forms.Form
{
    private Panel buttonPanel = new Panel();
    private DataGridView songsDataGridView = new DataGridView();
    private Button addNewRowButton = new Button();
    private Button deleteRowButton = new Button();

    public Form1()
    {
        this.Load += new EventHandler(Form1_Load);
    }

    private void Form1_Load(System.Object sender, System.EventArgs e)
    {
        SetupLayout();
        SetupDataGridView();
        PopulateDataGridView();
    }

    private void songsDataGridView_CellFormatting(object sender,
        System.Windows.Forms.DataGridViewCellFormattingEventArgs e)
    {
        if (this.songsDataGridView.Columns[e.ColumnIndex].Name == "Release Date")
        {
            if (e != null)
            {
                if (e.Value != null)
                {
                    try
                    {
                        e.Value = DateTime.Parse(e.Value.ToString())
                            .ToLongDateString();
                        e.FormattingApplied = true;
                    }
                    catch (FormatException)
                    {
                        Console.WriteLine("{0} is not a valid date.", e.Value.ToString());
                    }
                }
            }
        }
    }

    private void addNewRowButton_Click(object sender, EventArgs e)
    {
        this.songsDataGridView.Rows.Add();
    }

    private void deleteRowButton_Click(object sender, EventArgs e)
    {
        if (this.songsDataGridView.SelectedRows.Count > 0 &&
            this.songsDataGridView.SelectedRows[0].Index !=
            this.songsDataGridView.Rows.Count - 1)
        {
            this.songsDataGridView.Rows.RemoveAt(
                this.songsDataGridView.SelectedRows[0].Index);
        }
    }

    private void SetupLayout()
    {
        this.Size = new Size(600, 500);

        addNewRowButton.Text = "Add Row";
        addNewRowButton.Location = new Point(10, 10);
        addNewRowButton.Click += new EventHandler(addNewRowButton_Click);

        deleteRowButton.Text = "Delete Row";
        deleteRowButton.Location = new Point(100, 10);
        deleteRowButton.Click += new EventHandler(deleteRowButton_Click);

        buttonPanel.Controls.Add(addNewRowButton);
        buttonPanel.Controls.Add(deleteRowButton);
        buttonPanel.Height = 50;
        buttonPanel.Dock = DockStyle.Bottom;

        this.Controls.Add(this.buttonPanel);
    }

    private void SetupDataGridView()
    {
        this.Controls.Add(songsDataGridView);

        songsDataGridView.ColumnCount = 5;

        songsDataGridView.ColumnHeadersDefaultCellStyle.BackColor = Color.Navy;
        songsDataGridView.ColumnHeadersDefaultCellStyle.ForeColor = Color.White;
        songsDataGridView.ColumnHeadersDefaultCellStyle.Font =
            new Font(songsDataGridView.Font, FontStyle.Bold);

        songsDataGridView.Name = "songsDataGridView";
        songsDataGridView.Location = new Point(8, 8);
        songsDataGridView.Size = new Size(500, 250);
        songsDataGridView.AutoSizeRowsMode =
            DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;
        songsDataGridView.ColumnHeadersBorderStyle =
            DataGridViewHeaderBorderStyle.Single;
        songsDataGridView.CellBorderStyle = DataGridViewCellBorderStyle.Single;
        songsDataGridView.GridColor = Color.Black;
        songsDataGridView.RowHeadersVisible = false;

        songsDataGridView.Columns[0].Name = "Release Date";
        songsDataGridView.Columns[1].Name = "Track";
        songsDataGridView.Columns[2].Name = "Title";
        songsDataGridView.Columns[3].Name = "Artist";
        songsDataGridView.Columns[4].Name = "Album";
        songsDataGridView.Columns[4].DefaultCellStyle.Font =
            new Font(songsDataGridView.DefaultCellStyle.Font, FontStyle.Italic);

        songsDataGridView.SelectionMode =
            DataGridViewSelectionMode.FullRowSelect;
        songsDataGridView.MultiSelect = false;
        songsDataGridView.Dock = DockStyle.Fill;

        songsDataGridView.CellFormatting += new
            DataGridViewCellFormattingEventHandler(
            songsDataGridView_CellFormatting);
    }

    private void PopulateDataGridView()
    {

        string[] row0 = { "11/22/1968", "29", "Revolution 9", 
            "Beatles", "The Beatles [White Album]" };
        string[] row1 = { "1960", "6", "Fools Rush In", 
            "Frank Sinatra", "Nice 'N' Easy" };
        string[] row2 = { "11/11/1971", "1", "One of These Days", 
            "Pink Floyd", "Meddle" };
        string[] row3 = { "1988", "7", "Where Is My Mind?", 
            "Pixies", "Surfer Rosa" };
        string[] row4 = { "5/1981", "9", "Can't Find My Mind", 
            "Cramps", "Psychedelic Jungle" };
        string[] row5 = { "6/10/2003", "13", 
            "Scatterbrain. (As Dead As Leaves.)", 
            "Radiohead", "Hail to the Thief" };
        string[] row6 = { "6/30/1992", "3", "Dress", "P J Harvey", "Dry" };

        songsDataGridView.Rows.Add(row0);
        songsDataGridView.Rows.Add(row1);
        songsDataGridView.Rows.Add(row2);
        songsDataGridView.Rows.Add(row3);
        songsDataGridView.Rows.Add(row4);
        songsDataGridView.Rows.Add(row5);
        songsDataGridView.Rows.Add(row6);

        songsDataGridView.Columns[0].DisplayIndex = 3;
        songsDataGridView.Columns[1].DisplayIndex = 4;
        songsDataGridView.Columns[2].DisplayIndex = 0;
        songsDataGridView.Columns[3].DisplayIndex = 1;
        songsDataGridView.Columns[4].DisplayIndex = 2;
    }


    [STAThreadAttribute()]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.Run(new Form1());
    }
}


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

Windows Vista, Windows XP с пакетом обновления 2 (SP2), Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 с пакетом обновления 4 (SP4), Windows Millennium Edition, Windows 98

Среды .NET Framework и .NET Compact Framework поддерживают не все версии каждой платформы. Поддерживаемые версии перечислены в разделе Требования к системе для .NET Framework.

.NET Framework

Поддерживается в версиях: 3.5, 3.0, 2.0
Показ: