Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

DataGridViewColumn classe

 

Date de publication : novembre 2016

Représente une colonne dans un DataGridView contrôle.

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


public class DataGridViewColumn : DataGridViewBand, IComponent, 
	IDisposable

NomDescription
System_CAPS_pubmethodDataGridViewColumn()

Initialise une nouvelle instance de la DataGridViewColumn classe à l’état par défaut.

System_CAPS_pubmethodDataGridViewColumn(DataGridViewCell)

Initialise une nouvelle instance de la DataGridViewColumn à l’aide d’un fichier de classe DataGridViewCell en tant que modèle.

NomDescription
System_CAPS_pubpropertyAutoSizeMode

Obtient ou définit le mode qui permet à la colonne de modifier automatiquement sa largeur.

System_CAPS_pubpropertyCellTemplate

Obtient ou définit le modèle utilisé pour créer des cellules.

System_CAPS_pubpropertyCellType

Obtient le type d'exécution du modèle de cellule.

System_CAPS_pubpropertyContextMenuStrip

Obtient ou définit le menu contextuel pour la colonne.(Remplace DataGridViewBand.ContextMenuStrip.)

System_CAPS_pubpropertyDataGridView

Obtient le DataGridView contrôle associé à cet élément.(Hérité de DataGridViewElement.)

System_CAPS_pubpropertyDataPropertyName

Obtient ou définit le nom de la colonne de base de données ou de la propriété de source de données à laquelle le DataGridViewColumn est lié.

System_CAPS_pubpropertyDefaultCellStyle

Obtient ou définit le style de cellule par défaut de la colonne.(Remplace DataGridViewBand.DefaultCellStyle.)

System_CAPS_pubpropertyDefaultHeaderCellType

Obtient ou définit le type d’exécution de la cellule d’en-tête par défaut.(Hérité de DataGridViewBand.)

System_CAPS_pubpropertyDisplayed

Obtient une valeur indiquant si la bande est actuellement affichée à l’écran.(Hérité de DataGridViewBand.)

System_CAPS_pubpropertyDisplayIndex

Obtient ou définit l'ordre d'affichage de la colonne par rapport aux colonnes actuellement affichées.

System_CAPS_pubpropertyDividerWidth

Obtient ou définit la largeur, en pixels, du séparateur de colonne.

System_CAPS_pubpropertyFillWeight

Obtient ou définit une valeur qui représente la largeur de la colonne en mode de remplissage par rapport aux largeurs des autres colonnes en mode de remplissage contenues dans le contrôle.

System_CAPS_pubpropertyFrozen

Obtient ou définit une valeur indiquant si une colonne se déplace lorsqu’un utilisateur fait défiler le DataGridView contrôle horizontalement.(Remplace DataGridViewBand.Frozen.)

System_CAPS_pubpropertyHasDefaultCellStyle

Obtient une valeur indiquant si le DefaultCellStyle propriété a été définie.(Hérité de DataGridViewBand.)

System_CAPS_pubpropertyHeaderCell

Obtient ou définit le DataGridViewColumnHeaderCell qui représente l’en-tête de colonne.

System_CAPS_protpropertyHeaderCellCore

Obtient ou définit la cellule d’en-tête de la DataGridViewBand.(Hérité de DataGridViewBand.)

System_CAPS_pubpropertyHeaderText

Obtient ou définit le texte de légende pour la cellule d'en-tête de la colonne.

System_CAPS_pubpropertyIndex

Obtient la position relative de la bande dans la DataGridView contrôle.(Hérité de DataGridViewBand.)

System_CAPS_pubpropertyInheritedAutoSizeMode

Obtient le mode de dimensionnement défini pour la colonne.

System_CAPS_pubpropertyInheritedStyle

Obtient le style de cellule actuellement appliqué à la colonne.(Remplace DataGridViewBand.InheritedStyle.)

System_CAPS_pubpropertyIsDataBound

Obtient une valeur indiquant si la colonne est liée à une source de données.

System_CAPS_protpropertyIsRow

Obtient une valeur indiquant si la bande représente une ligne.(Hérité de DataGridViewBand.)

System_CAPS_pubpropertyMinimumWidth

Obtient ou définit la largeur minimale, en pixels, de la colonne.

System_CAPS_pubpropertyName

Obtient ou définit le nom de la colonne.

System_CAPS_pubpropertyReadOnly

Obtient ou définit une valeur indiquant si l'utilisateur peut modifier les cellules de la colonne.(Remplace DataGridViewBand.ReadOnly.)

System_CAPS_pubpropertyResizable

Obtient ou définit une valeur indiquant si la colonne peut être redimensionnée.(Remplace DataGridViewBand.Resizable.)

System_CAPS_pubpropertySelected

Obtient ou définit une valeur indiquant si la bande est dans un état de l’interface (interface utilisateur) utilisateur sélectionné.(Hérité de DataGridViewBand.)

System_CAPS_pubpropertySite

Cette API prend en charge l’infrastructure de produit et n’est pas destinée à être utilisée directement depuis votre code. Obtient ou définit le site de la colonne.

System_CAPS_pubpropertySortMode

Obtient ou définit le mode de tri de la colonne.

System_CAPS_pubpropertyState

Obtient l’état d’interface graphique utilisateur de l’élément.(Hérité de DataGridViewElement.)

System_CAPS_pubpropertyTag

Obtient ou définit l’objet qui contient les données à associer à la bande.(Hérité de DataGridViewBand.)

System_CAPS_pubpropertyToolTipText

Obtient ou définit le texte utilisé pour les info-bulles.

System_CAPS_pubpropertyValueType

Obtient ou définit le type de données des valeurs stockées dans les cellules de la colonne.

System_CAPS_pubpropertyVisible

Obtient ou définit une valeur indiquant si la colonne est visible.(Remplace DataGridViewBand.Visible.)

System_CAPS_pubpropertyWidth

Obtient ou définit la largeur actuelle de la colonne.

NomDescription
System_CAPS_pubmethodClone()

Crée une copie exacte de cette bande.(Remplace DataGridViewBand.Clone().)

System_CAPS_pubmethodDispose()

Libère toutes les ressources utilisées par DataGridViewBand.(Hérité de DataGridViewBand.)

System_CAPS_protmethodDispose(Boolean)

Libère les ressources non managées utilisées par DataGridViewBand et libère éventuellement les ressources managées.(Remplace DataGridViewBand.Dispose(Boolean).)

System_CAPS_pubmethodEquals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.(Hérité de Object.)

System_CAPS_protmethodFinalize()

Libère les ressources associées à la bande.(Hérité de DataGridViewBand.)

System_CAPS_pubmethodGetHashCode()

Fait office de fonction de hachage par défaut.(Hérité de Object.)

System_CAPS_pubmethodGetPreferredWidth(DataGridViewAutoSizeColumnMode, Boolean)

Calcule la largeur idéale de la colonne en fonction des critères spécifiés.

System_CAPS_pubmethodGetType()

Obtient le Type de l'instance actuelle.(Hérité de Object.)

System_CAPS_protmethodMemberwiseClone()

Crée une copie superficielle du Object actuel.(Hérité de Object.)

System_CAPS_protmethodOnDataGridViewChanged()

Appelé lorsque la bande est associé à un autre DataGridView.(Hérité de DataGridViewBand.)

System_CAPS_protmethodRaiseCellClick(DataGridViewCellEventArgs)

Déclenche l'événement DataGridView.CellClick.(Hérité de DataGridViewElement.)

System_CAPS_protmethodRaiseCellContentClick(DataGridViewCellEventArgs)

Déclenche l'événement DataGridView.CellContentClick.(Hérité de DataGridViewElement.)

System_CAPS_protmethodRaiseCellContentDoubleClick(DataGridViewCellEventArgs)

Déclenche l'événement DataGridView.CellContentDoubleClick.(Hérité de DataGridViewElement.)

System_CAPS_protmethodRaiseCellValueChanged(DataGridViewCellEventArgs)

Déclenche l'événement DataGridView.CellValueChanged.(Hérité de DataGridViewElement.)

System_CAPS_protmethodRaiseDataError(DataGridViewDataErrorEventArgs)

Déclenche l'événement DataGridView.DataError.(Hérité de DataGridViewElement.)

System_CAPS_protmethodRaiseMouseWheel(MouseEventArgs)

Déclenche l'événement Control.MouseWheel.(Hérité de DataGridViewElement.)

System_CAPS_pubmethodToString()

Obtient une chaîne qui décrit la colonne.(Remplace DataGridViewBand.ToString().)

NomDescription
System_CAPS_pubeventDisposed

Se produit lorsque le DataGridViewColumn est supprimé.

La DataGridViewColumn classe représente une colonne logique dans un DataGridView contrôle. Vous pouvez récupérer des colonnes via la Columns collection du contrôle.

Contrairement à un DataGridViewRow, qui contient la collection réelle de cellules dans un DataGridView, DataGridViewColumn est utilisé principalement pour modifier l’apparence et le comportement de l’interface utilisateur (UI), de colonne comme style de cellule et de largeur de colonne. Pour plus d’informations sur les styles de cellules, consultez Styles de cellules dans le contrôle DataGridView Windows Forms.

Les types qui dérivent de DataGridViewColumn initialisent généralement le CellTemplate propriété à une nouvelle instance d’un type connexe dérivé le DataGridViewCell classe. Toutes les propriétés de colonne qui se rapportent à l’apparence ou le comportement des cellules sont des wrappers pour les propriétés correspondantes de la cellule dans le modèle. Modifier automatiquement l’un de ces propriétés sur la colonne modifie la valeur du modèle de cellule et sur toutes les cellules de la colonne. Pour remplacer la valeur spécifiée pour des cellules individuelles, définissez les valeurs de cellule après avoir défini la valeur de colonne.

Remarques à l’attention des héritiers :

Lorsque vous dérivez de DataGridViewColumn et ajouter de nouvelles propriétés à la classe dérivée, veillez à substituer la Clone méthode pour copier les nouvelles propriétés lors des opérations de clonage. Vous devez également appeler la classe de base Clone méthode afin que les propriétés de la classe de base soient copiées dans la nouvelle cellule.

L’exemple de code suivant crée un Windows Form avec un DataGridView et un ensemble de boutons. Chaque étiquette de bouton décrit une opération associée à une DataGridViewColumn propriété, telles que le remplacement de la première et la dernière colonne (à l’aide de la DisplayIndex propriété) ou de la modification du texte d’un en-tête de colonne (à l’aide de la HeaderText propriété). En cliquant sur un bouton modifie la propriété associée de la 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
Disponible depuis 2.0

Tous les membres statiques publics ( Shared en Visual Basic) de ce type sont thread-safe. Les membres d’instance n’ont pas la garantie d’être thread-safe.

Retour au début
Afficher: