DataGridViewButtonColumn Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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) |