Cette documentation est archivée et n’est pas conservée.

DataGridView, classe

Affiche les données dans une grille personnalisable.

Espace de noms: System.Windows.Forms
Assembly : System.Windows.Forms (dans system.windows.forms.dll)

[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] 
[ComVisibleAttribute(true)] 
public class DataGridView : Control, ISupportInitialize
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ 
/** @attribute ComVisibleAttribute(true) */ 
public class DataGridView extends Control implements ISupportInitialize
ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) 
ComVisibleAttribute(true) 
public class DataGridView extends Control implements ISupportInitialize
Non applicable.

Le contrôle DataGridView fournit une table personnalisable pour l'affichage des données. La classe DataGridView permet la personnalisation des cellules, des lignes, des colonnes et des bordures grâce à l'utilisation de propriétés telles que DefaultCellStyle, ColumnHeadersDefaultCellStyle, CellBorderStyle et GridColor. Pour plus d'informations, consultez Mises en forme et styles de base dans le contrôle DataGridView Windows Forms.

Vous pouvez utiliser un contrôle DataGridView pour afficher des données avec ou sans source de données sous-jacente. Sans spécifier une source de données, vous pouvez créer des colonnes et des lignes qui contiennent des données et les ajouter directement au DataGridView. Vous pouvez également définir les propriétés DataSource et DataMember pour lier le DataGridView à une source de données et le remplir automatiquement avec des données. Pour plus d'informations, consultez Affichage des données dans le contrôle DataGridView Windows Forms.

Lorsque vous travaillez avec d'importantes quantités de données, vous pouvez affecter true à la propriété VirtualMode pour afficher un sous-ensemble de données disponibles. Le mode virtuel requiert l'implémentation d'un cache de données à partir duquel est rempli le contrôle DataGridView. Pour plus d'informations, consultez Modes d'affichage des données dans le contrôle DataGridView Windows Forms.

Pour obtenir des informations supplémentaires sur les fonctionnalités disponibles dans le contrôle DataGridView, consultez DataGridView, contrôle (Windows Forms). Le tableau suivant fournit des liens directs vers des tâches courantes.

RubriqueEmplacement
Comment : ajouter des info-bulles à des cellules dans un contrôle DataGridView Windows FormsContrôles Windows Forms dans le Kit de développement .NET Framework SDK
Comment : définir des styles de police et de couleur dans le contrôle DataGridView Windows FormsContrôles Windows Forms dans le Kit de développement .NET Framework SDK
Comment : mettre en forme des données dans le contrôle DataGridView Windows FormsContrôles Windows Forms dans le Kit de développement .NET Framework SDK
Procédure pas à pas : validation des données dans le contrôle DataGridView Windows FormsContrôles Windows Forms dans le Kit de développement .NET Framework SDK
Comment : personnaliser la mise en forme des données dans le contrôle DataGridView Windows FormsContrôles Windows Forms dans le Kit de développement .NET Framework SDK
Procédure pas à pas : création d'un formulaire maître/détail qui utilise deux contrôles DataGridView Windows FormsContrôles Windows Forms dans le Kit de développement .NET Framework SDK
Comment : modifier le type d'une colonne DataGridView Windows Forms à l'aide du concepteurContrôles Windows Forms
Comment : lier des données au contrôle DataGridView Windows Forms à l'aide du concepteurContrôles Windows Forms
Comment : définir des styles de cellules et des formats de données par défaut pour le contrôle DataGridView Windows Forms à l'aide du concepteurContrôles Windows Forms
Comment : lier des données au contrôle DataGridView Windows FormsContrôles Windows Forms dans le Kit de développement .NET Framework SDK
Comment : modifier le type d'une colonne DataGridView Windows Forms à l'aide du concepteurdv_mclictl
Comment : lier des données au contrôle DataGridView Windows Forms à l'aide du concepteurdv_mclictl
Comment : définir des styles de cellules et des formats de données par défaut pour le contrôle DataGridView Windows Forms à l'aide du concepteurdv_mclictl
Comment : lier des données au contrôle DataGridView Windows Formsdv_fxmclictl
Comment : ajouter des info-bulles à des cellules dans un contrôle DataGridView Windows Formsdv_fxmclictl
Comment : définir des styles de police et de couleur dans le contrôle DataGridView Windows Formsdv_fxmclictl
Comment : mettre en forme des données dans le contrôle DataGridView Windows Formsdv_fxmclictl
Procédure pas à pas : validation des données dans le contrôle DataGridView Windows Formsdv_fxmclictl
Comment : personnaliser la mise en forme des données dans le contrôle DataGridView Windows Formsdv_fxmclictl
Procédure pas à pas : création d'un formulaire maître/détail qui utilise deux contrôles DataGridView Windows Formsdv_fxmclictl

Bien que le contrôle DataGridView remplace et ajoute des fonctionnalités au contrôle DataGrid des versions précédentes, le contrôle DataGrid est conservé pour la compatibilité descendante et l'utilisation future si tel est votre choix. Pour plus d'informations, consultez Différences entre les contrôles DataGridView et DataGrid Windows Forms.

RemarqueRemarque :

Le contrôle DataGridView hérite à la fois des propriétés ContextMenu et ContextMenuStrip de Control ; toutefois, il ne prend en charge que la propriété ContextMenuStrip. L'utilisation de la propriété ContextMenu avec le contrôle DataGridView n'a aucun effet.

L'exemple de code suivant montre comment initialiser un contrôle DataGridView indépendant.

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());
    }
}

System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Windows.Forms.Control
        System.Windows.Forms.DataGridView

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Microsoft .NET Framework 3.0 est pris en charge sur Windows Vista, Microsoft Windows XP SP2 et Windows Server 2003 SP1.

.NET Framework

Prise en charge dans : 3.0, 2.0
Afficher: