DataGridViewButtonColumn Class
Hosts a collection of DataGridViewButtonCell objects.
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
System.Windows.Forms.DataGridViewElement
System.Windows.Forms.DataGridViewBand
System.Windows.Forms.DataGridViewColumn
System.Windows.Forms.DataGridViewButtonColumn
| Name | Description | |
|---|---|---|
![]() | DataGridViewButtonColumn() | Initializes a new instance of the DataGridViewButtonColumn class to the default state. |
| Name | Description | |
|---|---|---|
![]() | AutoSizeMode | Gets or sets the mode by which the column automatically adjusts its width.(Inherited from DataGridViewColumn.) |
![]() | CellTemplate | Gets or sets the template used to create new cells.(Overrides DataGridViewColumn.CellTemplate.) |
![]() | CellType | Gets the run-time type of the cell template.(Inherited from DataGridViewColumn.) |
![]() | ContextMenuStrip | Gets or sets the shortcut menu for the column.(Inherited from DataGridViewColumn.) |
![]() | DataGridView | Gets the DataGridView control associated with this element.(Inherited from DataGridViewElement.) |
![]() | DataPropertyName | Gets or sets the name of the data source property or database column to which the DataGridViewColumn is bound.(Inherited from DataGridViewColumn.) |
![]() | DefaultCellStyle | Gets or sets the column's default cell style.(Overrides DataGridViewColumn.DefaultCellStyle.) |
![]() | DefaultHeaderCellType | Gets or sets the run-time type of the default header cell.(Inherited from DataGridViewBand.) |
![]() | Displayed | Gets a value indicating whether the band is currently displayed onscreen. (Inherited from DataGridViewBand.) |
![]() | DisplayIndex | Gets or sets the display order of the column relative to the currently displayed columns.(Inherited from DataGridViewColumn.) |
![]() | DividerWidth | Gets or sets the width, in pixels, of the column divider.(Inherited from DataGridViewColumn.) |
![]() | FillWeight | 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.(Inherited from DataGridViewColumn.) |
![]() | FlatStyle | Gets or sets the flat-style appearance of the button cells in the column. |
![]() | Frozen | Gets or sets a value indicating whether a column will move when a user scrolls the DataGridView control horizontally.(Inherited from DataGridViewColumn.) |
![]() | HasDefaultCellStyle | Gets a value indicating whether the DefaultCellStyle property has been set. (Inherited from DataGridViewBand.) |
![]() | HeaderCell | Gets or sets the DataGridViewColumnHeaderCell that represents the column header.(Inherited from DataGridViewColumn.) |
![]() | HeaderCellCore | Gets or sets the header cell of the DataGridViewBand.(Inherited from DataGridViewBand.) |
![]() | HeaderText | Gets or sets the caption text on the column's header cell.(Inherited from DataGridViewColumn.) |
![]() | Index | Gets the relative position of the band within the DataGridView control.(Inherited from DataGridViewBand.) |
![]() | InheritedAutoSizeMode | Gets the sizing mode in effect for the column.(Inherited from DataGridViewColumn.) |
![]() | InheritedStyle | Gets the cell style currently applied to the column.(Inherited from DataGridViewColumn.) |
![]() | IsDataBound | Gets a value indicating whether the column is bound to a data source.(Inherited from DataGridViewColumn.) |
![]() | IsRow | Gets a value indicating whether the band represents a row.(Inherited from DataGridViewBand.) |
![]() | MinimumWidth | Gets or sets the minimum width, in pixels, of the column.(Inherited from DataGridViewColumn.) |
![]() | Name | Gets or sets the name of the column.(Inherited from DataGridViewColumn.) |
![]() | ReadOnly | Gets or sets a value indicating whether the user can edit the column's cells.(Inherited from DataGridViewColumn.) |
![]() | Resizable | Gets or sets a value indicating whether the column is resizable.(Inherited from DataGridViewColumn.) |
![]() | Selected | Gets or sets a value indicating whether the band is in a selected user interface (UI) state.(Inherited from DataGridViewBand.) |
![]() | Site | This API supports the product infrastructure and is not intended to be used directly from your code. Gets or sets the site of the column.(Inherited from DataGridViewColumn.) |
![]() | SortMode | Gets or sets the sort mode for the column.(Inherited from DataGridViewColumn.) |
![]() | State | Gets the user interface (UI) state of the element.(Inherited from DataGridViewElement.) |
![]() | Tag | Gets or sets the object that contains data to associate with the band.(Inherited from DataGridViewBand.) |
![]() | Text | Gets or sets the default text displayed on the button cell. |
![]() | ToolTipText | Gets or sets the text used for ToolTips.(Inherited from DataGridViewColumn.) |
![]() | UseColumnTextForButtonValue | Gets or sets a value indicating whether the Text property value is displayed as the button text for cells in this column. |
![]() | ValueType | Gets or sets the data type of the values in the column's cells.(Inherited from DataGridViewColumn.) |
![]() | Visible | Gets or sets a value indicating whether the column is visible.(Inherited from DataGridViewColumn.) |
![]() | Width | Gets or sets the current width of the column.(Inherited from DataGridViewColumn.) |
| Name | Description | |
|---|---|---|
![]() | Disposed | Occurs when the DataGridViewColumn is disposed.(Inherited from DataGridViewColumn.) |
The DataGridViewButtonColumn class is a specialized type of the DataGridViewColumn class used to logically host cells that respond to simple user input. A DataGridViewButtonColumn has an associated DataGridViewButtonCell in every DataGridViewRow that intersects it. Each cell supplies a user interface (UI) that is similar to a Button control.
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.
The default sort mode for this column type is NotSortable.
To respond to user button clicks, handle the DataGridView.CellClick or DataGridView.CellContentClick event. In the event handler, you can use the DataGridViewCellEventArgs.ColumnIndex property to determine whether the click occurred in the button column. You can use the DataGridViewCellEventArgs.RowIndex property to determine whether the click occurred in a button cell and not on the column header.
Note |
|---|
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. |
Notes to Inheritors:
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. You should also call the base class's Clone method so that the properties of the base class are copied to the new cell.
The following code example demonstrates how to use a DataGridViewButtonColumn to perform actions on particular rows. 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. 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"); } } }
Available since 2.0
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.





