DataGridViewButtonColumn Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Hospeda una colección 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
- Herencia
- Atributos
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar un DataGridViewButtonColumn para realizar acciones en filas concretas. En este ejemplo, un DataGridView.CellClick controlador de eventos determina primero si un clic está en una celda de botón y, a continuación, recupera un objeto de negocio asociado a la fila. Este ejemplo forma parte de un ejemplo más grande disponible en 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
Comentarios
La DataGridViewButtonColumn clase es un tipo especializado de la DataGridViewColumn clase que se usa para hospedar lógicamente las celdas que responden a una entrada de usuario sencilla. Un DataGridViewButtonColumn objeto tiene asociado DataGridViewButtonCell en cada DataGridViewRow que lo interseca. Cada celda proporciona una interfaz de usuario (UI) similar a un Button control.
Para mostrar el mismo texto de botón para cada celda, establezca la UseColumnTextForButtonValue propiedad true
en y establezca la Text propiedad en el texto del botón deseado.
El modo de ordenación predeterminado para este tipo de columna es NotSortable.
Para responder a los clics del botón de usuario, controle el DataGridView.CellClick evento o DataGridView.CellContentClick . En el controlador de eventos, puede usar la DataGridViewCellEventArgs.ColumnIndex propiedad para determinar si el clic se produjo en la columna de botón. Puede usar la DataGridViewCellEventArgs.RowIndex propiedad para determinar si el clic se produjo en una celda de botón y no en el encabezado de columna.
Nota
Cuando se habilitan los estilos visuales, los botones de una columna de botón se pintan mediante un ButtonRenderer, y los estilos de celda especificados mediante propiedades como, por DefaultCellStyle ejemplo, no tienen ningún efecto.
Notas a los desarrolladores de herederos
Cuando derive de DataGridViewButtonColumn y agregue nuevas propiedades a la clase derivada, asegúrese de invalidar el Clone() método para copiar las nuevas propiedades durante las operaciones de clonación. También debe llamar al método de Clone() la clase base para que las propiedades de la clase base se copien en la nueva celda.
Constructores
DataGridViewButtonColumn() |
Inicializa una nueva instancia de la clase DataGridViewButtonColumn con el estado predeterminado. |
Propiedades
AutoSizeMode |
Obtiene o establece el modo mediante el cual la columna ajusta automáticamente su tamaño. (Heredado de DataGridViewColumn) |
CellTemplate |
Obtiene o establece la plantilla utilizada para crear nuevas celdas. |
CellType |
Obtiene el tipo en tiempo de ejecución de la plantilla de celda. (Heredado de DataGridViewColumn) |
ContextMenuStrip |
Obtiene o establece el menú contextual para la columna. (Heredado de DataGridViewColumn) |
DataGridView |
Obtiene el control DataGridView asociado a este elemento. (Heredado de DataGridViewElement) |
DataPropertyName |
Obtiene o establece el nombre de la columna de base de datos o la propiedad del origen de datos a la que se enlaza DataGridViewColumn. (Heredado de DataGridViewColumn) |
DefaultCellStyle |
Obtiene o establece el estilo predeterminado de celda de la columna. |
DefaultHeaderCellType |
Obtiene o establece el tipo de la celda de encabezado predeterminada en tiempo de ejecución. (Heredado de DataGridViewBand) |
Displayed |
Obtiene un valor que indica si la banda se muestra actualmente en la pantalla. (Heredado de DataGridViewBand) |
DisplayIndex |
Obtiene o establece el orden de presentación de la columna respecto de las columnas actualmente mostradas. (Heredado de DataGridViewColumn) |
DividerWidth |
Obtiene o establece el ancho, en píxeles, del divisor de columna. (Heredado de DataGridViewColumn) |
FillWeight |
Obtiene o establece un valor que representa el ancho de la columna cuando se encuentra en modo de relleno, respecto del ancho de las demás columnas del control que estén en modo de relleno. (Heredado de DataGridViewColumn) |
FlatStyle |
Obtiene o establece el aspecto de estilo plano de las celdas de botón de la columna. |
Frozen |
Obtiene o establece un valor que indica si la columna se va a mover cuando el usuario se desplace horizontalmente por el control DataGridView. (Heredado de DataGridViewColumn) |
HasDefaultCellStyle |
Obtiene un valor que indica si se ha establecido la propiedad DefaultCellStyle. (Heredado de DataGridViewBand) |
HeaderCell |
Obtiene o establece el objeto DataGridViewColumnHeaderCell que representa el encabezado de columna. (Heredado de DataGridViewColumn) |
HeaderCellCore |
Obtiene o establece la celda de encabezado de DataGridViewBand. (Heredado de DataGridViewBand) |
HeaderText |
Obtiene o establece el texto de título en la celda de encabezado de columna. (Heredado de DataGridViewColumn) |
Index |
Obtiene la posición relativa de la banda dentro del control DataGridView. (Heredado de DataGridViewBand) |
InheritedAutoSizeMode |
Obtiene el modo de ajuste de tamaño en vigor para la columna. (Heredado de DataGridViewColumn) |
InheritedStyle |
Obtiene el estilo de celda aplicado actualmente a la columna. (Heredado de DataGridViewColumn) |
IsDataBound |
Obtiene un valor que indica si la columna está enlazada a un origen de datos. (Heredado de DataGridViewColumn) |
IsRow |
Obtiene un valor que indica si la banda representa una fila. (Heredado de DataGridViewBand) |
MinimumWidth |
Obtiene o establece el ancho mínimo, en píxeles, de la columna. (Heredado de DataGridViewColumn) |
Name |
Obtiene o establece el nombre de la columna. (Heredado de DataGridViewColumn) |
ReadOnly |
Obtiene o establece un valor que indica si el usuario puede editar las celdas de la columna. (Heredado de DataGridViewColumn) |
Resizable |
Obtiene o establece un valor que indica si se puede cambiar el tamaño de la columna. (Heredado de DataGridViewColumn) |
Selected |
Obtiene o establece un valor que indica si la banda está en un estado seleccionado de la interfaz de usuario (UI). (Heredado de DataGridViewBand) |
Site |
Obtiene o establece el sitio de la columna. (Heredado de DataGridViewColumn) |
SortMode |
Obtiene o establece el modo de ordenación de la columna. (Heredado de DataGridViewColumn) |
State |
Obtiene el estado de la interfaz de usuario del elemento. (Heredado de DataGridViewElement) |
Tag |
Obtiene o establece el objeto que contiene datos para asociar a la banda. (Heredado de DataGridViewBand) |
Text |
Obtiene o establece el texto mostrado de manera predeterminada en el botón de barra de herramientas. |
ToolTipText |
Obtiene o establece el texto que se utiliza como información sobre herramientas. (Heredado de DataGridViewColumn) |
UseColumnTextForButtonValue |
Obtiene o establece un valor que indica si el valor de la propiedad Text se muestra como el texto del botón para las celdas de esta columna. |
ValueType |
Obtiene o establece el tipo de datos de los valores de las celdas de la columna. (Heredado de DataGridViewColumn) |
Visible |
Obtiene o establece un valor que indica si la columna está visible. (Heredado de DataGridViewColumn) |
Width |
Obtiene o establece el ancho actual de la columna. (Heredado de DataGridViewColumn) |
Métodos
Clone() |
Crea una copia exacta de esta columna. |
Dispose() |
Libera todos los recursos que usa DataGridViewBand. (Heredado de DataGridViewBand) |
Dispose(Boolean) |
Libera los recursos no administrados que usa DataGridViewBand y, de forma opcional, libera los recursos administrados. (Heredado de DataGridViewColumn) |
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetPreferredWidth(DataGridViewAutoSizeColumnMode, Boolean) |
Calcula el ancho ideal de la columna basándose en los criterios especificados. (Heredado de DataGridViewColumn) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
OnDataGridViewChanged() |
Se llama cuando la banda está asociada a un DataGridView diferente. (Heredado de DataGridViewBand) |
RaiseCellClick(DataGridViewCellEventArgs) |
Genera el evento CellClick. (Heredado de DataGridViewElement) |
RaiseCellContentClick(DataGridViewCellEventArgs) |
Genera el evento CellContentClick. (Heredado de DataGridViewElement) |
RaiseCellContentDoubleClick(DataGridViewCellEventArgs) |
Genera el evento CellContentDoubleClick. (Heredado de DataGridViewElement) |
RaiseCellValueChanged(DataGridViewCellEventArgs) |
Genera el evento CellValueChanged. (Heredado de DataGridViewElement) |
RaiseDataError(DataGridViewDataErrorEventArgs) |
Genera el evento DataError. (Heredado de DataGridViewElement) |
RaiseMouseWheel(MouseEventArgs) |
Genera el evento MouseWheel. (Heredado de DataGridViewElement) |
ToString() |
Obtiene una cadena que describe la columna. |
Eventos
Disposed |
Se produce cuando se desecha DataGridViewColumn. (Heredado de DataGridViewColumn) |