DataGridViewButtonColumn Clase

Definición

Hospeda una colección de objetos DataGridViewButtonCell.Hosts a collection of DataGridViewButtonCell objects.

public ref class DataGridViewButtonColumn : System::Windows::Forms::DataGridViewColumn
[System.Drawing.ToolboxBitmap(typeof(System.Windows.Forms.DataGridViewButtonColumn), "DataGridViewButtonColumn.bmp")]
[System.Drawing.ToolboxBitmap(typeof(System.Windows.Forms.DataGridViewButtonColumn), "DataGridViewButtonColumn")]
public class DataGridViewButtonColumn : System.Windows.Forms.DataGridViewColumn
type DataGridViewButtonColumn = class
    inherit DataGridViewColumn
Public Class DataGridViewButtonColumn
Inherits DataGridViewColumn
Herencia
Atributos

Ejemplos

En el ejemplo de código siguiente se muestra cómo DataGridViewButtonColumn utilizar un para realizar acciones en filas determinadas.The following code example demonstrates how to use a DataGridViewButtonColumn to perform actions on particular rows. En este ejemplo, un DataGridView.CellClick controlador de eventos determina en primer lugar si un clic está en una celda de botón y, a continuación, recupera un objeto comercial asociado a la fila.In this example, a DataGridView.CellClick event handler first determines whether a click is on a button cell, then retrieves a business object associated with the row. Este ejemplo forma parte de un ejemplo más grande disponible en cómo: Obtener acceso a los objetos de una Windows Forms listadesplegable DataGridViewComboBoxCell.This example is part of a larger example available in 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 celdas que responden a una entrada de usuario simple.The DataGridViewButtonColumn class is a specialized type of the DataGridViewColumn class used to logically host cells that respond to simple user input. Un DataGridViewButtonColumn tiene un asociado DataGridViewButtonCell en cada DataGridViewRow que forma una intersección con él.A DataGridViewButtonColumn has an associated DataGridViewButtonCell in every DataGridViewRow that intersects it. Cada celda proporciona una interfaz de usuario (IU) similar a un Button control.Each cell supplies a user interface (UI) that is similar to a Button control.

Para mostrar el mismo texto de botón para cada celda, establezca UseColumnTextForButtonValue la propiedad true en y establezca Text la propiedad en el texto del botón deseado.To display the same button text for every cell, set the UseColumnTextForButtonValue property to true and set the Text property to the desired button text.

El modo de ordenación predeterminado para este tipo NotSortablede columna es.The default sort mode for this column type is NotSortable.

Para responder a los clics del botón del usuario DataGridView.CellClick , DataGridView.CellContentClick controle el evento o.To respond to user button clicks, handle the DataGridView.CellClick or DataGridView.CellContentClick event. En el controlador de eventos, puede usar la DataGridViewCellEventArgs.ColumnIndex propiedad para determinar si se ha producido el clic en la columna Button.In the event handler, you can use the DataGridViewCellEventArgs.ColumnIndex property to determine whether the click occurred in the button column. Puede utilizar la DataGridViewCellEventArgs.RowIndex propiedad para determinar si se ha producido el clic en una celda del botón y no en el encabezado de columna.You can use the DataGridViewCellEventArgs.RowIndex property to determine whether the click occurred in a button cell and not on the column header.

Nota

Cuando se habilitan los estilos visuales, los botones de una columna de botón se ButtonRendererdibujan con, y los estilos de celda DefaultCellStyle especificados mediante propiedades como no tienen ningún efecto.When visual styles are enabled, the buttons in a button column are painted using a ButtonRenderer, and cell styles specified through properties such as DefaultCellStyle have no effect.

Notas a los desarrolladores de herederos

Al derivar de DataGridViewButtonColumn y agregar 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.When you derive from DataGridViewButtonColumn and add new properties to the derived class, be sure to override the Clone() method to copy the new properties during cloning operations. 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.You should also call the base class's Clone() method so that the properties of the base class are copied to the new cell.

Constructores

DataGridViewButtonColumn()

Inicializa una nueva instancia de la clase DataGridViewButtonColumn con el estado predeterminado.Initializes a new instance of the DataGridViewButtonColumn class to the default state.

Propiedades

AutoSizeMode

Obtiene o establece el modo mediante el cual la columna ajusta automáticamente su tamaño.Gets or sets the mode by which the column automatically adjusts its width.

(Heredado de DataGridViewColumn)
CellTemplate

Obtiene o establece la plantilla utilizada para crear nuevas celdas.Gets or sets the template used to create new cells.

CellType

Obtiene el tipo en tiempo de ejecución de la plantilla de celda.Gets the run-time type of the cell template.

(Heredado de DataGridViewColumn)
ContextMenuStrip

Obtiene o establece el menú contextual para la columna.Gets or sets the shortcut menu for the column.

(Heredado de DataGridViewColumn)
DataGridView

Obtiene el control DataGridView asociado a este elemento.Gets the DataGridView control associated with this element.

(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.Gets or sets the name of the data source property or database column to which the DataGridViewColumn is bound.

(Heredado de DataGridViewColumn)
DefaultCellStyle

Obtiene o establece el estilo predeterminado de celda de la columna.Gets or sets the column's default cell style.

DefaultHeaderCellType

Obtiene o establece el tipo de la celda de encabezado predeterminada en tiempo de ejecución.Gets or sets the run-time type of the default header cell.

(Heredado de DataGridViewBand)
Displayed

Obtiene un valor que indica si la banda se muestra actualmente en la pantalla.Gets a value indicating whether the band is currently displayed onscreen.

(Heredado de DataGridViewBand)
DisplayIndex

Obtiene o establece el orden de presentación de la columna respecto de las columnas actualmente mostradas.Gets or sets the display order of the column relative to the currently displayed columns.

(Heredado de DataGridViewColumn)
DividerWidth

Obtiene o establece el ancho, en píxeles, del divisor de columna.Gets or sets the width, in pixels, of the column divider.

(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.Gets or sets a value that represents the width of the column when it is in fill mode relative to the widths of other fill-mode columns in the control.

(Heredado de DataGridViewColumn)
FlatStyle

Obtiene o establece el aspecto de estilo plano de las celdas de botón de la columna.Gets or sets the flat-style appearance of the button cells in the column.

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.Gets or sets a value indicating whether a column will move when a user scrolls the DataGridView control horizontally.

(Heredado de DataGridViewColumn)
HasDefaultCellStyle

Obtiene un valor que indica si se ha establecido la propiedad DefaultCellStyle.Gets a value indicating whether the DefaultCellStyle property has been set.

(Heredado de DataGridViewBand)
HeaderCell

Obtiene o establece el objeto DataGridViewColumnHeaderCell que representa el encabezado de columna.Gets or sets the DataGridViewColumnHeaderCell that represents the column header.

(Heredado de DataGridViewColumn)
HeaderCellCore

Obtiene o establece la celda de encabezado de DataGridViewBand.Gets or sets the header cell of the DataGridViewBand.

(Heredado de DataGridViewBand)
HeaderText

Obtiene o establece el texto de título en la celda de encabezado de columna.Gets or sets the caption text on the column's header cell.

(Heredado de DataGridViewColumn)
Index

Obtiene la posición relativa de la banda dentro del control DataGridView.Gets the relative position of the band within the DataGridView control.

(Heredado de DataGridViewBand)
InheritedAutoSizeMode

Obtiene el modo de ajuste de tamaño en vigor para la columna.Gets the sizing mode in effect for the column.

(Heredado de DataGridViewColumn)
InheritedStyle

Obtiene el estilo de celda aplicado actualmente a la columna.Gets the cell style currently applied to the column.

(Heredado de DataGridViewColumn)
IsDataBound

Obtiene un valor que indica si la columna está enlazada a un origen de datos.Gets a value indicating whether the column is bound to a data source.

(Heredado de DataGridViewColumn)
IsRow

Obtiene un valor que indica si la banda representa una fila.Gets a value indicating whether the band represents a row.

(Heredado de DataGridViewBand)
MinimumWidth

Obtiene o establece el ancho mínimo, en píxeles, de la columna.Gets or sets the minimum width, in pixels, of the column.

(Heredado de DataGridViewColumn)
Name

Obtiene o establece el nombre de la columna.Gets or sets the name of the column.

(Heredado de DataGridViewColumn)
ReadOnly

Obtiene o establece un valor que indica si el usuario puede editar las celdas de la columna.Gets or sets a value indicating whether the user can edit the column's cells.

(Heredado de DataGridViewColumn)
Resizable

Obtiene o establece un valor que indica si se puede cambiar el tamaño de la columna.Gets or sets a value indicating whether the column is resizable.

(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).Gets or sets a value indicating whether the band is in a selected user interface (UI) state.

(Heredado de DataGridViewBand)
Site

Obtiene o establece el sitio de la columna.Gets or sets the site of the column.

(Heredado de DataGridViewColumn)
SortMode

Obtiene o establece el modo de ordenación de la columna.Gets or sets the sort mode for the column.

(Heredado de DataGridViewColumn)
State

Obtiene el estado de la interfaz de usuario del elemento.Gets the user interface (UI) state of the element.

(Heredado de DataGridViewElement)
Tag

Obtiene o establece el objeto que contiene datos para asociar a la banda.Gets or sets the object that contains data to associate with the band.

(Heredado de DataGridViewBand)
Text

Obtiene o establece el texto mostrado de manera predeterminada en el botón de barra de herramientas.Gets or sets the default text displayed on the button cell.

ToolTipText

Obtiene o establece el texto que se utiliza como información sobre herramientas.Gets or sets the text used for ToolTips.

(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.Gets or sets a value indicating whether the Text property value is displayed as the button text for cells in this column.

ValueType

Obtiene o establece el tipo de datos de los valores de las celdas de la columna.Gets or sets the data type of the values in the column's cells.

(Heredado de DataGridViewColumn)
Visible

Obtiene o establece un valor que indica si la columna es visible.Gets or sets a value indicating whether the column is visible.

(Heredado de DataGridViewColumn)
Width

Obtiene o establece el ancho actual de la columna.Gets or sets the current width of the column.

(Heredado de DataGridViewColumn)

Métodos

Clone()

Crea una copia exacta de esta columna.Creates an exact copy of this column.

Dispose()

Libera todos los recursos que usa DataGridViewBand.Releases all resources used by the DataGridViewBand.

(Heredado de DataGridViewBand)
Dispose(Boolean)

Libera los recursos no administrados que usa DataGridViewBand y, de forma opcional, libera los recursos administrados.Releases the unmanaged resources used by the DataGridViewBand and optionally releases the managed resources.

(Heredado de DataGridViewColumn)
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetPreferredWidth(DataGridViewAutoSizeColumnMode, Boolean)

Calcula el ancho ideal de la columna basándose en los criterios especificados.Calculates the ideal width of the column based on the specified criteria.

(Heredado de DataGridViewColumn)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
OnDataGridViewChanged()

Se llama cuando la banda está asociada a un DataGridView diferente.Called when the band is associated with a different DataGridView.

(Heredado de DataGridViewBand)
RaiseCellClick(DataGridViewCellEventArgs)

Genera el evento CellClick.Raises the CellClick event.

(Heredado de DataGridViewElement)
RaiseCellContentClick(DataGridViewCellEventArgs)

Genera el evento CellContentClick.Raises the CellContentClick event.

(Heredado de DataGridViewElement)
RaiseCellContentDoubleClick(DataGridViewCellEventArgs)

Genera el evento CellContentDoubleClick.Raises the CellContentDoubleClick event.

(Heredado de DataGridViewElement)
RaiseCellValueChanged(DataGridViewCellEventArgs)

Genera el evento CellValueChanged.Raises the CellValueChanged event.

(Heredado de DataGridViewElement)
RaiseDataError(DataGridViewDataErrorEventArgs)

Genera el evento DataError.Raises the DataError event.

(Heredado de DataGridViewElement)
RaiseMouseWheel(MouseEventArgs)

Genera el evento MouseWheel.Raises the MouseWheel event.

(Heredado de DataGridViewElement)
ToString()

Obtiene una cadena que describe la columna.Gets a string that describes the column.

Eventos

Disposed

Se produce cuando se desecha DataGridViewColumn.Occurs when the DataGridViewColumn is disposed.

(Heredado de DataGridViewColumn)

Se aplica a

Consulte también: