DataGridViewButtonColumn Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Aloja uma coleção de DataGridViewButtonCell objetos.
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.bmp")>]
type DataGridViewButtonColumn = class
inherit DataGridViewColumn
Public Class DataGridViewButtonColumn
Inherits DataGridViewColumn
- Herança
- Atributos
Exemplos
O exemplo de código seguinte demonstra como usar a DataGridViewButtonColumn para executar ações em linhas específicas. Neste exemplo, um DataGridView.CellClick gestor de eventos determina primeiro se um clique está numa célula de botão, depois recupera um objeto de negócio associado à linha. Este exemplo faz parte de um exemplo mais amplo disponível em 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
Observações
A DataGridViewButtonColumn classe é um tipo especializado da DataGridViewColumn classe usada para alojar logicamente células que respondem a simples inputs do utilizador. A DataGridViewButtonColumn tem um associado DataGridViewButtonCell em cada DataGridViewRow que o intersecta. Cada célula fornece uma interface de utilizador (UI) semelhante a um Button controlo.
Para mostrar o mesmo texto de botão para cada célula, defina a UseColumnTextForButtonValue propriedade para true e defina a Text propriedade para o texto do botão desejado.
O modo de ordenação por defeito para este tipo de coluna é NotSortable.
Para responder a cliques de botões do utilizador, trate do DataGridView.CellClick ou DataGridView.CellContentClick do evento. No gestor de eventos, pode usar a DataGridViewCellEventArgs.ColumnIndex propriedade para determinar se o clique ocorreu na coluna do botão. Pode usar a DataGridViewCellEventArgs.RowIndex propriedade para determinar se o clique ocorreu numa célula de botão e não no cabeçalho da coluna.
Note
Quando os estilos visuais estão ativados, os botões numa coluna de botões são pintados com um ButtonRenderer, e os estilos de célula especificados através de propriedades como DefaultCellStyle não têm efeito.
Notas para Herdeiros
Quando derivar e DataGridViewButtonColumn adicionar novas propriedades à classe derivada, certifique-se de sobrepor o Clone() método para copiar as novas propriedades durante as operações de clonagem. Deves também chamar o método da Clone() classe base para que as propriedades da classe base sejam copiadas para a nova célula.
Construtores
| Name | Description |
|---|---|
| DataGridViewButtonColumn() |
Inicializa uma nova instância da DataGridViewButtonColumn classe para o estado padrão. |
Propriedades
| Name | Description |
|---|---|
| AutoSizeMode |
Obtém ou define o modo pelo qual a coluna ajusta automaticamente a sua largura. (Herdado de DataGridViewColumn) |
| CellTemplate |
Obtém ou define o modelo usado para criar novas células. |
| CellType |
Obtém o tipo de execução do template da célula. (Herdado de DataGridViewColumn) |
| ContextMenuStrip |
Recebe ou define o menu de atalhos para a coluna. (Herdado de DataGridViewColumn) |
| DataGridView |
Obtém o DataGridView controlo associado a este elemento. (Herdado de DataGridViewElement) |
| DataPropertyName |
Obtém ou define o nome da propriedade da fonte de dados ou da coluna da base de dados à qual está vinculado DataGridViewColumn . (Herdado de DataGridViewColumn) |
| DefaultCellStyle |
Obtém ou define o estilo de célula padrão da coluna. |
| DefaultHeaderCellType |
Obtém ou define o tipo de execução da célula de cabeçalho padrão. (Herdado de DataGridViewBand) |
| Displayed |
Recebe um valor que indica se a banda está atualmente exibida no ecrã. (Herdado de DataGridViewBand) |
| DisplayIndex |
Obtém ou define a ordem de exibição da coluna em relação às colunas atualmente apresentadas. (Herdado de DataGridViewColumn) |
| DividerWidth |
Obtém ou define a largura, em píxeis, do divisor de colunas. (Herdado de DataGridViewColumn) |
| FillWeight |
Obtém ou define um valor que representa a largura da coluna quando esta está em modo de preenchimento relativamente às larguras de outras colunas em modo de preenchimento no controlo. (Herdado de DataGridViewColumn) |
| FlatStyle |
Obtém ou define o aspeto plano das células dos botões na coluna. |
| Frozen |
Recebe ou define um valor que indica se uma coluna se move quando o utilizador desliza o DataGridView controlo horizontalmente. (Herdado de DataGridViewColumn) |
| HasDefaultCellStyle |
Recebe um valor que indica se a DefaultCellStyle propriedade foi definida. (Herdado de DataGridViewBand) |
| HeaderCell |
Obtém ou define o DataGridViewColumnHeaderCell que representa o cabeçalho da coluna. (Herdado de DataGridViewColumn) |
| HeaderCellCore |
Obtém ou define a célula de cabeçalho do DataGridViewBand. (Herdado de DataGridViewBand) |
| HeaderText |
Recebe ou define o texto da legenda na célula do cabeçalho da coluna. (Herdado de DataGridViewColumn) |
| Index |
Obtém a posição relativa da banda dentro do DataGridView controlo. (Herdado de DataGridViewBand) |
| InheritedAutoSizeMode |
Assim entra em funcionamento o modo de dimensionamento para a coluna. (Herdado de DataGridViewColumn) |
| InheritedStyle |
Recebe o estilo de célula atualmente aplicado à coluna. (Herdado de DataGridViewColumn) |
| IsDataBound |
Obtém um valor que indica se a coluna está ligada a uma fonte de dados. (Herdado de DataGridViewColumn) |
| IsRow |
Recebe um valor que indica se a banda representa uma linha. (Herdado de DataGridViewBand) |
| MinimumWidth |
Obtém ou define a largura mínima, em pixels, da coluna. (Herdado de DataGridViewColumn) |
| Name |
Recebe ou define o nome da coluna. (Herdado de DataGridViewColumn) |
| ReadOnly |
Recebe ou define um valor que indica se o utilizador pode editar as células da coluna. (Herdado de DataGridViewColumn) |
| Resizable |
Recebe ou define um valor que indica se a coluna é redimensionável. (Herdado de DataGridViewColumn) |
| Selected |
Recebe ou define um valor que indica se a banda está num estado selecionado de interface de utilizador (UI). (Herdado de DataGridViewBand) |
| Site |
Obtém ou define o local da coluna. (Herdado de DataGridViewColumn) |
| SortMode |
Obtém ou define o modo de ordenação para a coluna. (Herdado de DataGridViewColumn) |
| State |
Obtém o estado da interface de utilizador (UI) do elemento. (Herdado de DataGridViewElement) |
| Tag |
Obtém ou define o objeto que contém dados para associar à banda. (Herdado de DataGridViewBand) |
| Text |
Obtém ou define o texto padrão exibido na célula do botão. |
| ToolTipText |
Obtém ou define o texto usado para as dicas de ferramenta. (Herdado de DataGridViewColumn) |
| UseColumnTextForButtonValue |
Recebe ou define um valor que indica se o Text valor da propriedade é apresentado como o texto do botão para as células desta coluna. |
| ValueType |
Obtém ou define o tipo de dados dos valores nas células da coluna. (Herdado de DataGridViewColumn) |
| Visible |
Recebe ou define um valor que indica se a coluna é visível. (Herdado de DataGridViewColumn) |
| Width |
Obtém ou define a largura atual da coluna. (Herdado de DataGridViewColumn) |
Métodos
| Name | Description |
|---|---|
| Clone() |
Cria uma cópia exata desta coluna. |
| Dispose() |
Liberta todos os recursos utilizados pelo DataGridViewBand. (Herdado de DataGridViewBand) |
| Dispose(Boolean) |
Liberta os recursos não geridos usados pelo DataGridViewBand e opcionalmente liberta os recursos geridos. (Herdado de DataGridViewColumn) |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetPreferredWidth(DataGridViewAutoSizeColumnMode, Boolean) |
Calcula a largura ideal da coluna com base nos critérios especificados. (Herdado de DataGridViewColumn) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| OnDataGridViewChanged() |
Chamado quando a banda está associada a um .DataGridView (Herdado de DataGridViewBand) |
| RaiseCellClick(DataGridViewCellEventArgs) |
Eleva o CellClick evento. (Herdado de DataGridViewElement) |
| RaiseCellContentClick(DataGridViewCellEventArgs) |
Eleva o CellContentClick evento. (Herdado de DataGridViewElement) |
| RaiseCellContentDoubleClick(DataGridViewCellEventArgs) |
Eleva o CellContentDoubleClick evento. (Herdado de DataGridViewElement) |
| RaiseCellValueChanged(DataGridViewCellEventArgs) |
Eleva o CellValueChanged evento. (Herdado de DataGridViewElement) |
| RaiseDataError(DataGridViewDataErrorEventArgs) |
Eleva o DataError evento. (Herdado de DataGridViewElement) |
| RaiseMouseWheel(MouseEventArgs) |
Eleva o MouseWheel evento. (Herdado de DataGridViewElement) |
| ToString() |
Recebe uma cadeia que descreve a coluna. |
evento
| Name | Description |
|---|---|
| Disposed |
Ocorre quando é DataGridViewColumn descartado. (Herdado de DataGridViewColumn) |