Partager via


DataGridViewButtonColumn Classe

Définition

Héberge une collection d'objets DataGridViewButtonCell.

public ref class DataGridViewButtonColumn : System::Windows::Forms::DataGridViewColumn
[System.Drawing.ToolboxBitmap(typeof(System.Windows.Forms.DataGridViewButtonColumn), "DataGridViewButtonColumn.bmp")]
public class DataGridViewButtonColumn : System.Windows.Forms.DataGridViewColumn
[System.Drawing.ToolboxBitmap(typeof(System.Windows.Forms.DataGridViewButtonColumn), "DataGridViewButtonColumn")]
public class DataGridViewButtonColumn : System.Windows.Forms.DataGridViewColumn
[<System.Drawing.ToolboxBitmap(typeof(System.Windows.Forms.DataGridViewButtonColumn), "DataGridViewButtonColumn.bmp")>]
type DataGridViewButtonColumn = class
    inherit DataGridViewColumn
[<System.Drawing.ToolboxBitmap(typeof(System.Windows.Forms.DataGridViewButtonColumn), "DataGridViewButtonColumn")>]
type DataGridViewButtonColumn = class
    inherit DataGridViewColumn
Public Class DataGridViewButtonColumn
Inherits DataGridViewColumn
Héritage
Attributs

Exemples

L’exemple de code suivant montre comment utiliser un pour effectuer des DataGridViewButtonColumn actions sur des lignes particulières. Dans cet exemple, un gestionnaire d’événements DataGridView.CellClick détermine d’abord si un clic se trouve sur une cellule de bouton, puis récupère un objet métier associé à la ligne. Cet exemple fait partie d’un exemple plus vaste disponible dans How to: Access Objects in a Windows Forms DataGridViewComboBoxCell Drop-Down List.

public class Form1 : Form
{
    private List<Employee> employees = new List<Employee>();
    private List<Task> tasks = new List<Task>();
    private Button reportButton = new Button();
    private DataGridView dataGridView1 = new DataGridView();

    [STAThread]
    public static void Main()
    {
        Application.Run(new Form1());
    }

    public Form1()
    {
        dataGridView1.Dock = DockStyle.Fill;
        dataGridView1.AutoSizeColumnsMode = 
            DataGridViewAutoSizeColumnsMode.AllCells;
        reportButton.Text = "Generate Report";
        reportButton.Dock = DockStyle.Top;
        reportButton.Click += new EventHandler(reportButton_Click);

        Controls.Add(dataGridView1);
        Controls.Add(reportButton);
        Load += new EventHandler(Form1_Load);
        Text = "DataGridViewComboBoxColumn Demo";
    }

    // Initializes the data source and populates the DataGridView control.
    private void Form1_Load(object sender, EventArgs e)
    {
        PopulateLists();
        dataGridView1.AutoGenerateColumns = false;
        dataGridView1.DataSource = tasks;
        AddColumns();
    }

    // Populates the employees and tasks lists. 
    private void PopulateLists()
    {
        employees.Add(new Employee("Harry"));
        employees.Add(new Employee("Sally"));
        employees.Add(new Employee("Roy"));
        employees.Add(new Employee("Pris"));
        tasks.Add(new Task(1, employees[1]));
        tasks.Add(new Task(2));
        tasks.Add(new Task(3, employees[2]));
        tasks.Add(new Task(4));
    }

    // Configures columns for the DataGridView control.
    private void AddColumns()
    {
        DataGridViewTextBoxColumn idColumn = 
            new DataGridViewTextBoxColumn();
        idColumn.Name = "Task";
        idColumn.DataPropertyName = "Id";
        idColumn.ReadOnly = true;

        DataGridViewComboBoxColumn assignedToColumn = 
            new DataGridViewComboBoxColumn();

        // Populate the combo box drop-down list with Employee objects. 
        foreach (Employee e in employees) assignedToColumn.Items.Add(e);

        // Add "unassigned" to the drop-down list and display it for 
        // empty AssignedTo values or when the user presses CTRL+0. 
        assignedToColumn.Items.Add("unassigned");
        assignedToColumn.DefaultCellStyle.NullValue = "unassigned";

        assignedToColumn.Name = "Assigned To";
        assignedToColumn.DataPropertyName = "AssignedTo";
        assignedToColumn.AutoComplete = true;
        assignedToColumn.DisplayMember = "Name";
        assignedToColumn.ValueMember = "Self";

        // Add a button column. 
        DataGridViewButtonColumn buttonColumn = 
            new DataGridViewButtonColumn();
        buttonColumn.HeaderText = "";
        buttonColumn.Name = "Status Request";
        buttonColumn.Text = "Request Status";
        buttonColumn.UseColumnTextForButtonValue = true;

        dataGridView1.Columns.Add(idColumn);
        dataGridView1.Columns.Add(assignedToColumn);
        dataGridView1.Columns.Add(buttonColumn);

        // Add a CellClick handler to handle clicks in the button column.
        dataGridView1.CellClick +=
            new DataGridViewCellEventHandler(dataGridView1_CellClick);
    }

    // Reports on task assignments. 
    private void reportButton_Click(object sender, EventArgs e)
    {
        StringBuilder report = new StringBuilder();
        foreach (Task t in tasks)
        {
            String assignment = 
                t.AssignedTo == null ? 
                "unassigned" : "assigned to " + t.AssignedTo.Name;
            report.AppendFormat("Task {0} is {1}.", t.Id, assignment);
            report.Append(Environment.NewLine);
        }
        MessageBox.Show(report.ToString(), "Task Assignments");
    }

    // Calls the Employee.RequestStatus method.
    void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        // Ignore clicks that are not on button cells. 
        if (e.RowIndex < 0 || e.ColumnIndex !=
            dataGridView1.Columns["Status Request"].Index) return;

        // Retrieve the task ID.
        Int32 taskID = (Int32)dataGridView1[0, e.RowIndex].Value;

        // Retrieve the Employee object from the "Assigned To" cell.
        Employee assignedTo = dataGridView1.Rows[e.RowIndex]
            .Cells["Assigned To"].Value as Employee;

        // Request status through the Employee object if present. 
        if (assignedTo != null)
        {
            assignedTo.RequestStatus(taskID);
        }
        else
        {
            MessageBox.Show(String.Format(
                "Task {0} is unassigned.", taskID), "Status Request");
        }
    }
}
Public Class Form1
    Inherits Form

    Private employees As New List(Of Employee)
    Private tasks As New List(Of Task)
    Private WithEvents reportButton As New Button
    Private WithEvents dataGridView1 As New DataGridView

    <STAThread()> _
    Public Sub Main()
        Application.Run(New Form1)
    End Sub

    Sub New()
        dataGridView1.Dock = DockStyle.Fill
        dataGridView1.AutoSizeColumnsMode = _
            DataGridViewAutoSizeColumnsMode.AllCells
        reportButton.Text = "Generate Report"
        reportButton.Dock = DockStyle.Top

        Controls.Add(dataGridView1)
        Controls.Add(reportButton)
        Text = "DataGridViewComboBoxColumn Demo"
    End Sub

    ' Initializes the data source and populates the DataGridView control.
    Private Sub Form1_Load(ByVal sender As Object, _
        ByVal e As EventArgs) Handles Me.Load

        PopulateLists()
        dataGridView1.AutoGenerateColumns = False
        dataGridView1.DataSource = tasks
        AddColumns()

    End Sub

    ' Populates the employees and tasks lists. 
    Private Sub PopulateLists()
        employees.Add(New Employee("Harry"))
        employees.Add(New Employee("Sally"))
        employees.Add(New Employee("Roy"))
        employees.Add(New Employee("Pris"))
        tasks.Add(New Task(1, employees(1)))
        tasks.Add(New Task(2))
        tasks.Add(New Task(3, employees(2)))
        tasks.Add(New Task(4))
    End Sub

    ' Configures columns for the DataGridView control.
    Private Sub AddColumns()

        Dim idColumn As New DataGridViewTextBoxColumn()
        idColumn.Name = "Task"
        idColumn.DataPropertyName = "Id"
        idColumn.ReadOnly = True

        Dim assignedToColumn As New DataGridViewComboBoxColumn()

        ' Populate the combo box drop-down list with Employee objects. 
        For Each e As Employee In employees
            assignedToColumn.Items.Add(e)
        Next

        ' Add "unassigned" to the drop-down list and display it for 
        ' empty AssignedTo values or when the user presses CTRL+0. 
        assignedToColumn.Items.Add("unassigned")
        assignedToColumn.DefaultCellStyle.NullValue = "unassigned"

        assignedToColumn.Name = "Assigned To"
        assignedToColumn.DataPropertyName = "AssignedTo"
        assignedToColumn.AutoComplete = True
        assignedToColumn.DisplayMember = "Name"
        assignedToColumn.ValueMember = "Self"

        ' Add a button column. 
        Dim buttonColumn As New DataGridViewButtonColumn()
        buttonColumn.HeaderText = ""
        buttonColumn.Name = "Status Request"
        buttonColumn.Text = "Request Status"
        buttonColumn.UseColumnTextForButtonValue = True

        dataGridView1.Columns.Add(idColumn)
        dataGridView1.Columns.Add(assignedToColumn)
        dataGridView1.Columns.Add(buttonColumn)

    End Sub

    ' Reports on task assignments. 
    Private Sub reportButton_Click(ByVal sender As Object, _
        ByVal e As EventArgs) Handles reportButton.Click

        Dim report As New StringBuilder()
        For Each t As Task In tasks
            Dim assignment As String
            If t.AssignedTo Is Nothing Then
                assignment = "unassigned"
            Else
                assignment = "assigned to " + t.AssignedTo.Name
            End If
            report.AppendFormat("Task {0} is {1}.", t.Id, assignment)
            report.Append(Environment.NewLine)
        Next
        MessageBox.Show(report.ToString(), "Task Assignments")

    End Sub

    ' Calls the Employee.RequestStatus method.
    Private Sub dataGridView1_CellClick(ByVal sender As Object, _
        ByVal e As DataGridViewCellEventArgs) _
        Handles dataGridView1.CellClick

        ' Ignore clicks that are not on button cells. 
        If e.RowIndex < 0 OrElse Not e.ColumnIndex = _
            dataGridView1.Columns("Status Request").Index Then Return

        ' Retrieve the task ID.
        Dim taskID As Int32 = CInt(dataGridView1(0, e.RowIndex).Value)

        ' Retrieve the Employee object from the "Assigned To" cell.
        Dim assignedTo As Employee = TryCast(dataGridView1.Rows(e.RowIndex) _
            .Cells("Assigned To").Value, Employee)

        ' Request status through the Employee object if present. 
        If assignedTo IsNot Nothing Then
            assignedTo.RequestStatus(taskID)
        Else
            MessageBox.Show(String.Format( _
                "Task {0} is unassigned.", taskID), "Status Request")
        End If

    End Sub

End Class

Remarques

La DataGridViewButtonColumn classe est un type spécialisé de la DataGridViewColumn classe utilisée pour héberger logiquement des cellules qui répondent à une entrée utilisateur simple. A DataGridViewButtonColumn un associé DataGridViewButtonCell dans chaque DataGridViewRow qui l’entrecroise. Chaque cellule fournit une interface utilisateur similaire à un Button contrôle.

Pour afficher le même texte de bouton pour chaque cellule, définissez la UseColumnTextForButtonValue propriété sur true et définissez la Text propriété sur le texte de bouton souhaité.

Le mode de tri par défaut pour ce type de colonne est NotSortable.

Pour répondre aux clics de bouton de l’utilisateur, gérez l’événement DataGridView.CellClick ou DataGridView.CellContentClick . Dans le gestionnaire d’événements, vous pouvez utiliser la DataGridViewCellEventArgs.ColumnIndex propriété pour déterminer si le clic s’est produit dans la colonne du bouton. Vous pouvez utiliser la DataGridViewCellEventArgs.RowIndex propriété pour déterminer si le clic s’est produit dans une cellule de bouton et non dans l’en-tête de colonne.

Notes

Lorsque les styles visuels sont activés, les boutons d’une colonne de bouton sont peints à l’aide d’un ButtonRenderer, et les styles de cellule spécifiés par le biais de propriétés telles que n’ont DefaultCellStyle aucun effet.

Notes pour les héritiers

Lorsque vous dérivez et ajoutez de DataGridViewButtonColumn nouvelles propriétés à la classe dérivée, veillez à remplacer la Clone() méthode pour copier les nouvelles propriétés pendant les opérations de clonage. Vous devez également appeler la méthode de la classe de Clone() base afin que les propriétés de la classe de base soient copiées dans la nouvelle cellule.

Constructeurs

DataGridViewButtonColumn()

Initialise une nouvelle instance de la classe DataGridViewButtonColumn à son état par défaut.

Propriétés

AutoSizeMode

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

(Hérité de DataGridViewColumn)
CellTemplate

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

CellType

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

(Hérité de DataGridViewColumn)
ContextMenuStrip

Obtient ou définit le menu contextuel pour la colonne.

(Hérité de DataGridViewColumn)
DataGridView

Obtient le contrôle DataGridView associé à cet élément.

(Hérité de DataGridViewElement)
DataPropertyName

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

(Hérité de DataGridViewColumn)
DefaultCellStyle

Obtient ou définit le style de cellule par défaut de la colonne.

DefaultHeaderCellType

Obtient ou définit le type à l'exécution de la cellule d'en-tête par défaut.

(Hérité de DataGridViewBand)
Displayed

Obtient une valeur indiquant si la bande est actuellement affichée à l'écran.

(Hérité de DataGridViewBand)
DisplayIndex

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

(Hérité de DataGridViewColumn)
DividerWidth

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

(Hérité de DataGridViewColumn)
FillWeight

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.

(Hérité de DataGridViewColumn)
FlatStyle

Obtient ou définit le style à deux dimensions (flat) des cellules de bouton dans la colonne.

Frozen

Obtient ou définit une valeur indiquant si une colonne se déplace lorsqu'un utilisateur fait défiler horizontalement le contrôle DataGridView.

(Hérité de DataGridViewColumn)
HasDefaultCellStyle

Obtient une valeur indiquant si la propriété DefaultCellStyle a été définie.

(Hérité de DataGridViewBand)
HeaderCell

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

(Hérité de DataGridViewColumn)
HeaderCellCore

Obtient ou définit la cellule d'en-tête du DataGridViewBand.

(Hérité de DataGridViewBand)
HeaderText

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

(Hérité de DataGridViewColumn)
Index

Obtient la position relative de la bande dans le contrôle DataGridView.

(Hérité de DataGridViewBand)
InheritedAutoSizeMode

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

(Hérité de DataGridViewColumn)
InheritedStyle

Obtient le style de cellule actuellement appliqué à la colonne.

(Hérité de DataGridViewColumn)
IsDataBound

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

(Hérité de DataGridViewColumn)
IsRow

Obtient une valeur indiquant si la bande représente une ligne.

(Hérité de DataGridViewBand)
MinimumWidth

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

(Hérité de DataGridViewColumn)
Name

Obtient ou définit le nom de la colonne.

(Hérité de DataGridViewColumn)
ReadOnly

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

(Hérité de DataGridViewColumn)
Resizable

Obtient ou définit une valeur indiquant si la colonne peut être redimensionnée.

(Hérité de DataGridViewColumn)
Selected

Obtient ou définit une valeur indiquant si la bande se trouve dans un état sélectionné d'interface utilisateur.

(Hérité de DataGridViewBand)
Site

Obtient ou définit le site de la colonne.

(Hérité de DataGridViewColumn)
SortMode

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

(Hérité de DataGridViewColumn)
State

Obtient l'état d'interface utilisateur de l'élément.

(Hérité de DataGridViewElement)
Tag

Obtient ou définit l'objet qui contient les données à associer à la bande.

(Hérité de DataGridViewBand)
Text

Obtient ou définit le texte par défaut affiché sur la cellule de bouton.

ToolTipText

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

(Hérité de DataGridViewColumn)
UseColumnTextForButtonValue

Obtient ou définit une valeur indiquant si la valeur de la propriété Text est affichée comme texte du bouton pour les cellules dans cette colonne.

ValueType

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

(Hérité de DataGridViewColumn)
Visible

Obtient ou définit une valeur qui indique si la colonne est visible.

(Hérité de DataGridViewColumn)
Width

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

(Hérité de DataGridViewColumn)

Méthodes

Clone()

Crée une copie exacte de cette colonne.

Dispose()

Libère toutes les ressources utilisées par DataGridViewBand.

(Hérité de DataGridViewBand)
Dispose(Boolean)

Libère les ressources non managées utilisées par DataGridViewBand et libère éventuellement les ressources managées.

(Hérité de DataGridViewColumn)
Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetPreferredWidth(DataGridViewAutoSizeColumnMode, Boolean)

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

(Hérité de DataGridViewColumn)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OnDataGridViewChanged()

Appelé lorsque la bande est associée à un DataGridView différent.

(Hérité de DataGridViewBand)
RaiseCellClick(DataGridViewCellEventArgs)

Déclenche l’événement CellClick.

(Hérité de DataGridViewElement)
RaiseCellContentClick(DataGridViewCellEventArgs)

Déclenche l’événement CellContentClick.

(Hérité de DataGridViewElement)
RaiseCellContentDoubleClick(DataGridViewCellEventArgs)

Déclenche l’événement CellContentDoubleClick.

(Hérité de DataGridViewElement)
RaiseCellValueChanged(DataGridViewCellEventArgs)

Déclenche l’événement CellValueChanged.

(Hérité de DataGridViewElement)
RaiseDataError(DataGridViewDataErrorEventArgs)

Déclenche l’événement DataError.

(Hérité de DataGridViewElement)
RaiseMouseWheel(MouseEventArgs)

Déclenche l’événement MouseWheel.

(Hérité de DataGridViewElement)
ToString()

Obtient une chaîne qui décrit la colonne.

Événements

Disposed

Se produit lorsque DataGridViewColumn est supprimé.

(Hérité de DataGridViewColumn)

S’applique à

Voir aussi