Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Classe DataGridViewColumn

Rappresenta una colonna in un oggetto DataGridView controllare.

Spazio dei nomi:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

public class DataGridViewColumn : DataGridViewBand, 
	IComponent, IDisposable

Il tipo DataGridViewColumn espone i seguenti membri.

  NomeDescrizione
Metodo pubblicoDataGridViewColumn()Inizializza una nuova istanza di DataGridViewColumn classe allo stato predefinito.
Metodo pubblicoDataGridViewColumn(DataGridViewCell)Inizializza una nuova istanza di DataGridViewColumn classe utilizzando un oggetto esistente DataGridViewCell come modello.
In alto

  NomeDescrizione
Proprietà pubblicaAutoSizeModeOttiene o imposta la modalità in cui la colonna regola automaticamente la larghezza.
Proprietà pubblicaCellTemplateOttiene o imposta il modello utilizzato per creare nuove celle.
Proprietà pubblicaCellTypeOttiene il tipo di runtime del modello della cella.
Proprietà pubblicaContextMenuStripottiene o imposta il menu di scelta rapida per la colonna. (Esegue l'override di DataGridViewBand.ContextMenuStrip).
Proprietà pubblicaDataGridViewottiene DataGridView controllare associato all'elemento. (Ereditato da DataGridViewElement)
Proprietà pubblicaDataPropertyNameOttiene o imposta il nome della colonna della proprietà o dell'origine dati a cui DataGridViewColumn è associato.
Proprietà pubblicaDefaultCellStyleOttiene o imposta lo stile predefinito delle celle della colonna. (Esegue l'override di DataGridViewBand.DefaultCellStyle).
Proprietà pubblicaDefaultHeaderCellTypeOttiene o imposta il tipo di runtime delle celle di intestazione predefinita. (Ereditato da DataGridViewBand)
Proprietà pubblicaDisplayedOttiene un valore che indica se la banda è attualmente visualizzati sullo schermo visualizzare. (Ereditato da DataGridViewBand)
Proprietà pubblicaDisplayIndexOttiene o imposta l'ordine di visualizzazione della colonna relativa alle colonne attualmente visualizzate.
Proprietà pubblicaDividerWidthOttiene o imposta la larghezza, in pixel, del separatore di colonna.
Proprietà pubblicaFillWeightOttiene o imposta un valore che rappresenta la larghezza della colonna quando è in modalità di riempimento relativo alla larghezza delle colonne in modalità di riempimento nel controllo.
Proprietà pubblicaFrozenOttiene o imposta un valore che indica se una colonna è spostato quando un utente scorre DataGridView controllare orizzontalmente. (Esegue l'override di DataGridViewBand.Frozen).
Proprietà pubblicaHasDefaultCellStyleottiene un valore che indica se DefaultCellStyle la proprietà è stata impostata. (Ereditato da DataGridViewBand)
Proprietà pubblicaHeaderCellottiene o imposta DataGridViewColumnHeaderCell che rappresenta l'intestazione di colonna.
Proprietà protetta.HeaderCellCoreOttiene o imposta la cella di intestazione DataGridViewBand. (Ereditato da DataGridViewBand)
Proprietà pubblicaHeaderTextOttiene o imposta il testo della didascalia nella cella di intestazione di colonna.
Proprietà pubblicaIndexOttiene la posizione relativa della banda all'interno di DataGridView controllare. (Ereditato da DataGridViewBand)
Proprietà pubblicaInheritedAutoSizeModeottiene la modalità di ridimensionamento in effetti per la colonna.
Proprietà pubblicaInheritedStyleOttiene lo stile di cella attualmente applicato alla colonna. (Esegue l'override di DataGridViewBand.InheritedStyle).
Proprietà pubblicaIsDataBoundOttiene un valore che indica se la colonna è associato a un'origine dati.
Proprietà protetta.IsRowottiene un valore che indica se la banda rappresenta una riga. (Ereditato da DataGridViewBand)
Proprietà pubblicaMinimumWidthOttiene o imposta la larghezza minima, in pixel, della colonna.
Proprietà pubblicaNameOttiene o imposta il nome della colonna.
Proprietà pubblicaReadOnlyOttiene o imposta un valore che indica se l'utente può modificare le celle della colonna. (Esegue l'override di DataGridViewBand.ReadOnly).
Proprietà pubblicaResizableOttiene o imposta un valore che indica se la colonna è ridimensionabile. (Esegue l'override di DataGridViewBand.Resizable).
Proprietà pubblicaSelectedOttiene o imposta un valore che indica se la banda è in uno stato selezionato (UI) dell'interfaccia utente. (Ereditato da DataGridViewBand)
Proprietà pubblicaSiteInfrastruttura. Ottiene o imposta il sito della colonna.
Proprietà pubblicaSortModeOttiene o imposta la modalità di ordinamento per la colonna.
Proprietà pubblicaStateOttiene lo stato dell'interfaccia utente (UI) dell'elemento. (Ereditato da DataGridViewElement)
Proprietà pubblicaTagOttiene o imposta l'oggetto contenente i dati da associare alla banda. (Ereditato da DataGridViewBand)
Proprietà pubblicaToolTipTextOttiene o imposta il testo utilizzato per le descrizioni comandi.
Proprietà pubblicaValueTypeOttiene o imposta il tipo di dati dei valori delle celle della colonna.
Proprietà pubblicaVisibleOttiene o imposta un valore che indica se la colonna è visibile. (Esegue l'override di DataGridViewBand.Visible).
Proprietà pubblicaWidthOttiene o imposta la larghezza della colonna corrente.
In alto

  NomeDescrizione
Metodo pubblicoCloneCrea una copia completa della banda. (Esegue l'override di DataGridViewBand.Clone()).
Metodo pubblicoDispose()Libera tutte le risorse utilizzate da DataGridViewBand. (Ereditato da DataGridViewBand)
Metodo protettoDispose(Boolean)Rilascia risorse non gestite utilizzate da DataGridViewBand e facoltativamente dealloca risorse gestite. (Esegue l'override di DataGridViewBand.Dispose(Boolean)).
Metodo pubblicoEquals(Object) Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object)
Metodo protettoFinalizeRilascia risorse associate alla banda. (Ereditato da DataGridViewBand)
Metodo pubblicoGetHashCode Funge da funzione hash per un particolare tipo. (Ereditato da Object)
Metodo pubblicoGetPreferredWidthCalcola la larghezza ideale della colonna in base ai criteri specificati.
Metodo pubblicoGetType Ottiene il Type dell'istanza corrente. (Ereditato da Object)
Metodo protettoMemberwiseClone Crea una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo protettoOnDataGridViewChangedChiamato quando la banda è associata a un diverso DataGridView. (Ereditato da DataGridViewBand)
Metodo protettoRaiseCellClickGenerato DataGridView.CellClick evento. (Ereditato da DataGridViewElement)
Metodo protettoRaiseCellContentClickGenerato DataGridView.CellContentClick evento. (Ereditato da DataGridViewElement)
Metodo protettoRaiseCellContentDoubleClickGenerato DataGridView.CellContentDoubleClick evento. (Ereditato da DataGridViewElement)
Metodo protettoRaiseCellValueChangedGenerato DataGridView.CellValueChanged evento. (Ereditato da DataGridViewElement)
Metodo protettoRaiseDataErrorGenerato DataGridView.DataError evento. (Ereditato da DataGridViewElement)
Metodo protettoRaiseMouseWheelGenerato Control.MouseWheel evento. (Ereditato da DataGridViewElement)
Metodo pubblicoToStringottiene una stringa che descrive la colonna. (Esegue l'override di DataGridViewBand.ToString()).
In alto

  NomeDescrizione
Evento pubblicoDisposedsi verifica quando DataGridViewColumn viene eliminato.
In alto

DataGridViewColumn la classe rappresenta una colonna logica in un oggetto DataGridView controllare. È possibile recuperare le colonne con Columns raccolta del controllo.

A differenza di un oggetto DataGridViewRow, che contiene in realtà raccolta di celle in un controllo DataGridView, DataGridViewColumn viene utilizzato principalmente per modificare l'aspetto e il comportamento dell'interfaccia utente (UI) della colonna, ad esempio la larghezza della colonna e lo stile di cella. Per ulteriori informazioni sugli stili delle celle, vedere Stili della cella nel controllo DataGridView Windows Form.

Tipi che derivano da DataGridViewColumn in genere inizializzare CellTemplate proprietà a una nuova istanza di un tipo correlato derivato da DataGridViewCell classe. Tutte le proprietà delle colonne correlate all'aspetto o il comportamento di singole celle sono wrapper per le proprietà corrispondenti della cella del modello. Modificare una di queste proprietà sulla colonna viene automaticamente modifica il valore nel modello della cella e tutte le celle nella colonna. Per eseguire l'override del valore specificato per le singole celle, impostare i valori delle celle dopo avere impostato il valore della colonna.

Note per gli eredi

Quando si deriva da DataGridViewColumn e aggiungere nuove proprietà alla classe derivata, accertarsi di override Clone metodo per copiare le nuove proprietà durante le operazioni di duplicazione. È inoltre necessario chiamare la classe base Clone metodo in modo da copiare le proprietà della classe base nella nuova cella.

Nell'esempio di codice seguente viene creato un Windows Form contenente un oggetto DataGridView e un insieme di pulsanti. Ogni etichetta del pulsante descrive un'operazione correlata a un oggetto DataGridViewColumn proprietà, come scambiare la prima e l'ultima colonna (mediante DisplayIndex proprietà o modificando il testo di un'intestazione di colonna (mediante HeaderText proprietà). Fare clic su un pulsante cambia la proprietà associata di l 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

Supportato in: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Qualsiasi membro pubblico static (Shared in Visual Basic) di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft