DataGridViewButtonColumn Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Hospeda uma coleção de objetos 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
- Herança
- Atributos
Exemplos
O exemplo de código a seguir demonstra como usar um DataGridViewButtonColumn para executar ações em linhas específicas. Neste exemplo, um DataGridView.CellClick manipulador de eventos primeiro determina se um clique está em uma célula de botão e, em seguida, recupera um objeto de negócios associado à linha. Este exemplo faz parte de um exemplo maior 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
Comentários
A DataGridViewButtonColumn classe é um tipo especializado da DataGridViewColumn classe usada para hospedar logicamente células que respondem à entrada simples do usuário. Um DataGridViewButtonColumn tem um associado DataGridViewButtonCell em cada DataGridViewRow que o cruza. Cada célula fornece uma interface do usuário semelhante a um Button controle .
Para exibir o mesmo texto de botão para cada célula, defina a UseColumnTextForButtonValue propriedade como true
e defina a Text propriedade como o texto do botão desejado.
O modo de classificação padrão para esse tipo de coluna é NotSortable.
Para responder aos cliques do botão do usuário, manipule o DataGridView.CellClick evento ou DataGridView.CellContentClick . No manipulador de eventos, você pode usar a DataGridViewCellEventArgs.ColumnIndex propriedade para determinar se o clique ocorreu na coluna de botão. Você pode usar a DataGridViewCellEventArgs.RowIndex propriedade para determinar se o clique ocorreu em uma célula de botão e não no cabeçalho da coluna.
Observação
Quando os estilos visuais são habilitados, os botões em uma coluna de botão são pintados usando um ButtonRenderere os estilos de célula especificados por meio de propriedades como DefaultCellStyle não têm efeito.
Notas aos Herdeiros
Ao derivar de DataGridViewButtonColumn e adicionar novas propriedades à classe derivada, substitua o Clone() método para copiar as novas propriedades durante as operações de clonagem. Você também deve chamar o método da Clone() classe base para que as propriedades da classe base sejam copiadas para a nova célula.
Construtores
DataGridViewButtonColumn() |
Inicializa uma nova instância da classe DataGridViewButtonColumn com o estado padrão. |
Propriedades
AutoSizeMode |
Obtém ou define o modo pelo qual a coluna ajusta a largura automaticamente. (Herdado de DataGridViewColumn) |
CellTemplate |
Obtém ou define o modelo usado para criar novas células. |
CellType |
Obtém o tipo de tempo de execução do modelo de célula. (Herdado de DataGridViewColumn) |
ContextMenuStrip |
Obtém ou define o menu de atalho da coluna. (Herdado de DataGridViewColumn) |
DataGridView |
Obtém o controle de DataGridView associado a esse elemento. (Herdado de DataGridViewElement) |
DataPropertyName |
Obtém ou define o nome da propriedade da fonte de dados ou da coluna de banco de dados à qual DataGridViewColumn está associado. (Herdado de DataGridViewColumn) |
DefaultCellStyle |
Obtém ou define o estilo da célula padrão da coluna. |
DefaultHeaderCellType |
Obtém ou define o tipo de tempo de execução da célula de cabeçalho padrão. (Herdado de DataGridViewBand) |
Displayed |
Obtém um valor que indica se a banda é exibida na tela no momento. (Herdado de DataGridViewBand) |
DisplayIndex |
Obtém ou define a ordem de exibição da coluna em relação às colunas exibidas no momento. (Herdado de DataGridViewColumn) |
DividerWidth |
Obtém ou define a largura mínima, em pixels, do divisor de coluna. (Herdado de DataGridViewColumn) |
FillWeight |
Obtém ou define um valor que representa a largura da coluna quando ela está no modo de preenchimento em relação à largura das outras colunas de modo de preenchimento no controle. (Herdado de DataGridViewColumn) |
FlatStyle |
Obtém ou define a aparência de estilo plano das células do botão na coluna. |
Frozen |
Obtém ou define um valor que indica se uma coluna será movida quando um usuário rolar o controle DataGridView horizontalmente. (Herdado de DataGridViewColumn) |
HasDefaultCellStyle |
Obtém um valor que indica se a propriedade DefaultCellStyle 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 |
Obtém ou define o texto de legenda na célula do cabeçalho da coluna. (Herdado de DataGridViewColumn) |
Index |
Obtém a posição relativa da faixa dentro do controle DataGridView. (Herdado de DataGridViewBand) |
InheritedAutoSizeMode |
Obtém o modo de redimensionamento em vigor para a coluna. (Herdado de DataGridViewColumn) |
InheritedStyle |
Obtém o estilo aplicado atualmente à coluna. (Herdado de DataGridViewColumn) |
IsDataBound |
Obtém um valor que indica se a coluna está associada a uma fonte de dados. (Herdado de DataGridViewColumn) |
IsRow |
Obtém 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 |
Obtém ou define o nome da coluna. (Herdado de DataGridViewColumn) |
ReadOnly |
Obtém ou define um valor que indica se o usuário pode editar as células da coluna. (Herdado de DataGridViewColumn) |
Resizable |
Obtém ou define um valor que indica se a coluna é redimensionável. (Herdado de DataGridViewColumn) |
Selected |
Obtém ou define um valor que indica se a banda está em um estado de interface do usuário selecionado. (Herdado de DataGridViewBand) |
Site |
Obtém ou define o site da coluna. (Herdado de DataGridViewColumn) |
SortMode |
Obtém ou define o modo de classificação da coluna. (Herdado de DataGridViewColumn) |
State |
Obtém o estado da UI (interface do usuário) do elemento. (Herdado de DataGridViewElement) |
Tag |
Obtém ou define o objeto que contém os dados associados à 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 Dicas de Ferramentas. (Herdado de DataGridViewColumn) |
UseColumnTextForButtonValue |
Obtém ou define um valor que indica se o valor da propriedade Text será exibido como o texto do botão para as células nesta coluna. |
ValueType |
Obtém ou define o tipo de dados dos valores nas células da coluna. (Herdado de DataGridViewColumn) |
Visible |
Obtém ou define um valor que indica se a coluna está visível. (Herdado de DataGridViewColumn) |
Width |
Obtém ou define a largura atual da coluna. (Herdado de DataGridViewColumn) |
Métodos
Clone() |
Cria uma cópia exata desta coluna. |
Dispose() |
Libera todos os recursos usados pelo DataGridViewBand. (Herdado de DataGridViewBand) |
Dispose(Boolean) |
Libera os recursos não gerenciados usados pelo DataGridViewBand e opcionalmente libera os recursos gerenciados. (Herdado de DataGridViewColumn) |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetHashCode() |
Serve como a função de hash padrão. (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 Object atual. (Herdado de Object) |
OnDataGridViewChanged() |
Chamado quando a faixa está associada a um DataGridView diferente. (Herdado de DataGridViewBand) |
RaiseCellClick(DataGridViewCellEventArgs) |
Aciona o evento CellClick. (Herdado de DataGridViewElement) |
RaiseCellContentClick(DataGridViewCellEventArgs) |
Aciona o evento CellContentClick. (Herdado de DataGridViewElement) |
RaiseCellContentDoubleClick(DataGridViewCellEventArgs) |
Aciona o evento CellContentDoubleClick. (Herdado de DataGridViewElement) |
RaiseCellValueChanged(DataGridViewCellEventArgs) |
Aciona o evento CellValueChanged. (Herdado de DataGridViewElement) |
RaiseDataError(DataGridViewDataErrorEventArgs) |
Aciona o evento DataError. (Herdado de DataGridViewElement) |
RaiseMouseWheel(MouseEventArgs) |
Aciona o evento MouseWheel. (Herdado de DataGridViewElement) |
ToString() |
Obtém uma cadeia de caracteres que descreve a coluna. |
Eventos
Disposed |
Ocorre quando o DataGridViewColumn é descartado. (Herdado de DataGridViewColumn) |