DataGridViewButtonColumn Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Hostuje kolekci DataGridViewButtonCell objektů.
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
- Dědičnost
- Atributy
Příklady
Následující příklad kódu ukazuje, jak použít k DataGridViewButtonColumn provádění akcí na konkrétních řádcích. V tomto příkladu obslužná rutina DataGridView.CellClick události nejprve určí, zda je kliknutí na buňku tlačítka, a pak načte obchodní objekt přidružený k řádku. Tento příklad je součástí většího příkladu, který je k dispozici v části Postupy: Přístup k objektům v model Windows Forms DataGridViewComboBoxCell Drop-Down Seznamu.
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
Poznámky
Třída DataGridViewButtonColumn je specializovaným typem DataGridViewColumn třídy, která slouží k logickému hostování buněk, které reagují na jednoduchý uživatelský vstup. A DataGridViewButtonColumn má v každém DataGridViewRow přidruženéhoDataGridViewButtonCell, který ho protíná. Každá buňka poskytuje uživatelské rozhraní podobné ovládacímu Button prvku.
Pokud chcete zobrazit stejný text tlačítka pro každou buňku UseColumnTextForButtonValue , nastavte vlastnost na true
a nastavte Text vlastnost na požadovaný text tlačítka.
Výchozí režim řazení pro tento typ sloupce je NotSortable.
Pokud chcete reagovat na kliknutí na tlačítko uživatele, zpracujte DataGridView.CellClick událost nebo DataGridView.CellContentClick . V obslužné rutině události můžete pomocí DataGridViewCellEventArgs.ColumnIndex vlastnosti určit, jestli došlo ke kliknutí ve sloupci tlačítka. Vlastnost můžete použít DataGridViewCellEventArgs.RowIndex k určení, zda k kliknutí došlo v buňce tlačítka, a ne v záhlaví sloupce.
Poznámka
Pokud jsou povolené vizuální styly, tlačítka ve sloupci tlačítek jsou vykreslena pomocí ButtonRenderera styly buněk zadané prostřednictvím vlastností, jako DefaultCellStyle je například , nemají žádný vliv.
Poznámky pro dědice
Když odvozujete a DataGridViewButtonColumn přidáte nové vlastnosti do odvozené třídy, nezapomeňte přepsat metodu Clone() pro zkopírování nových vlastností během operací klonování. Měli byste také volat metodu základní třídy Clone() , aby se vlastnosti základní třídy zkopírovaly do nové buňky.
Konstruktory
DataGridViewButtonColumn() |
Inicializuje novou instanci DataGridViewButtonColumn třídy do výchozího stavu. |
Vlastnosti
AutoSizeMode |
Získá nebo nastaví režim, podle kterého sloupec automaticky upraví šířku. (Zděděno od DataGridViewColumn) |
CellTemplate |
Získá nebo nastaví šablonu použitou k vytvoření nových buněk. |
CellType |
Získá typ za běhu šablony buňky. (Zděděno od DataGridViewColumn) |
ContextMenuStrip |
Získá nebo nastaví místní nabídku pro sloupec. (Zděděno od DataGridViewColumn) |
DataGridView |
DataGridView Získá ovládací prvek přidružený k tomuto prvku. (Zděděno od DataGridViewElement) |
DataPropertyName |
Získá nebo nastaví název vlastnosti zdroje dat nebo sloupec databáze, ke kterému DataGridViewColumn je vázán. (Zděděno od DataGridViewColumn) |
DefaultCellStyle |
Získá nebo nastaví výchozí styl buňky sloupce. |
DefaultHeaderCellType |
Získá nebo nastaví typ za běhu výchozí buňky záhlaví. (Zděděno od DataGridViewBand) |
Displayed |
Získá hodnotu označující, zda pás je aktuálně zobrazen na obrazovce. (Zděděno od DataGridViewBand) |
DisplayIndex |
Získá nebo nastaví pořadí zobrazení sloupce vzhledem k aktuálně zobrazené sloupce. (Zděděno od DataGridViewColumn) |
DividerWidth |
Získá nebo nastaví šířku oddělovače sloupců v pixelech. (Zděděno od DataGridViewColumn) |
FillWeight |
Získá nebo nastaví hodnotu, která představuje šířku sloupce, pokud je v režimu vyplnění vzhledem k šířce jiných sloupců v režimu vyplnění v ovládacím prvku. (Zděděno od DataGridViewColumn) |
FlatStyle |
Získá nebo nastaví plochý vzhled buněk tlačítka ve sloupci. |
Frozen |
Získá nebo nastaví hodnotu označující, zda se sloupec přesune, když uživatel posune DataGridView ovládací prvek vodorovně. (Zděděno od DataGridViewColumn) |
HasDefaultCellStyle |
Získá hodnotu označující, zda DefaultCellStyle byla nastavena vlastnost. (Zděděno od DataGridViewBand) |
HeaderCell |
Získá nebo nastaví , DataGridViewColumnHeaderCell který představuje záhlaví sloupce. (Zděděno od DataGridViewColumn) |
HeaderCellCore |
Získá nebo nastaví buňku záhlaví objektu DataGridViewBand. (Zděděno od DataGridViewBand) |
HeaderText |
Získá nebo nastaví popis text v buňce záhlaví sloupce. (Zděděno od DataGridViewColumn) |
Index |
Získá relativní pozici pásma v rámci DataGridView ovládacího prvku. (Zděděno od DataGridViewBand) |
InheritedAutoSizeMode |
Získá režim změny velikosti v účinku pro sloupec. (Zděděno od DataGridViewColumn) |
InheritedStyle |
Získá styl buňky aktuálně použitý ve sloupci. (Zděděno od DataGridViewColumn) |
IsDataBound |
Získá hodnotu označující, zda je sloupec vázán na zdroj dat. (Zděděno od DataGridViewColumn) |
IsRow |
Získá hodnotu označující, zda pásmo představuje řádek. (Zděděno od DataGridViewBand) |
MinimumWidth |
Získá nebo nastaví minimální šířku sloupce v pixelech. (Zděděno od DataGridViewColumn) |
Name |
Získá nebo nastaví název sloupce. (Zděděno od DataGridViewColumn) |
ReadOnly |
Získá nebo nastaví hodnotu označující, zda uživatel může upravit buňky sloupce. (Zděděno od DataGridViewColumn) |
Resizable |
Získá nebo nastaví hodnotu označující, zda je sloupec měnit velikost. (Zděděno od DataGridViewColumn) |
Selected |
Získá nebo nastaví hodnotu označující, zda je pásmo ve vybraném uživatelském rozhraní (UI) stavu. (Zděděno od DataGridViewBand) |
Site |
Získá nebo nastaví web sloupce. (Zděděno od DataGridViewColumn) |
SortMode |
Získá nebo nastaví režim řazení pro sloupec. (Zděděno od DataGridViewColumn) |
State |
Získá uživatelské rozhraní (UI) stav elementu. (Zděděno od DataGridViewElement) |
Tag |
Získá nebo nastaví objekt, který obsahuje data, která chcete přidružit k pásu. (Zděděno od DataGridViewBand) |
Text |
Získá nebo nastaví výchozí text zobrazený na buňce tlačítka. |
ToolTipText |
Získá nebo nastaví text použitý pro popisy tlačítek. (Zděděno od DataGridViewColumn) |
UseColumnTextForButtonValue |
Získá nebo nastaví hodnotu označující, zda Text je hodnota vlastnosti zobrazena jako text tlačítka pro buňky v tomto sloupci. |
ValueType |
Získá nebo nastaví datový typ hodnot v buňkách sloupce. (Zděděno od DataGridViewColumn) |
Visible |
Získá nebo nastaví hodnotu označující, zda je sloupec viditelný. (Zděděno od DataGridViewColumn) |
Width |
Získá nebo nastaví aktuální šířku sloupce. (Zděděno od DataGridViewColumn) |
Metody
Clone() |
Vytvoří přesnou kopii tohoto sloupce. |
Dispose() |
Uvolní všechny prostředky používané nástrojem DataGridViewBand. (Zděděno od DataGridViewBand) |
Dispose(Boolean) |
Uvolní nespravované prostředky používané nástrojem DataGridViewBand a volitelně uvolní spravované prostředky. (Zděděno od DataGridViewColumn) |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetPreferredWidth(DataGridViewAutoSizeColumnMode, Boolean) |
Vypočítá ideální šířku sloupce na základě zadaných kritérií. (Zděděno od DataGridViewColumn) |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
OnDataGridViewChanged() |
Volá se, když je skupina přidružená k jinému DataGridView. (Zděděno od DataGridViewBand) |
RaiseCellClick(DataGridViewCellEventArgs) |
CellClick Vyvolá událost. (Zděděno od DataGridViewElement) |
RaiseCellContentClick(DataGridViewCellEventArgs) |
CellContentClick Vyvolá událost. (Zděděno od DataGridViewElement) |
RaiseCellContentDoubleClick(DataGridViewCellEventArgs) |
CellContentDoubleClick Vyvolá událost. (Zděděno od DataGridViewElement) |
RaiseCellValueChanged(DataGridViewCellEventArgs) |
CellValueChanged Vyvolá událost. (Zděděno od DataGridViewElement) |
RaiseDataError(DataGridViewDataErrorEventArgs) |
DataError Vyvolá událost. (Zděděno od DataGridViewElement) |
RaiseMouseWheel(MouseEventArgs) |
MouseWheel Vyvolá událost. (Zděděno od DataGridViewElement) |
ToString() |
Získá řetězec, který popisuje sloupec. |
Událost
Disposed |
Vyvolá se při DataGridViewColumn odstranění. (Zděděno od DataGridViewColumn) |