Sdílet prostřednictvím


DataGridViewButtonColumn Třída

Definice

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.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicParameterlessConstructor)]
[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")]
public class DataGridViewButtonColumn : System.Windows.Forms.DataGridViewColumn
[<System.Drawing.ToolboxBitmap(typeof(System.Windows.Forms.DataGridViewButtonColumn), "DataGridViewButtonColumn.bmp")>]
type DataGridViewButtonColumn = class
    inherit DataGridViewColumn
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicParameterlessConstructor)>]
[<System.Drawing.ToolboxBitmap(typeof(System.Windows.Forms.DataGridViewButtonColumn), "DataGridViewButtonColumn")>]
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 DataGridViewButtonColumn k provádění akcí na konkrétních řádcích. V tomto příkladu obslužná rutina DataGridView.CellClick události nejprve určuje, 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 objektu 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

Poznámky

Třída DataGridViewButtonColumn je specializovaný typ DataGridViewColumn třídy sloužící k logickému hostování buněk, které reagují na jednoduchý uživatelský vstup. A DataGridViewButtonColumn má přidruženou každouDataGridViewRow, DataGridViewButtonCell která ji protíná. Každá buňka poskytuje uživatelské rozhraní, které je podobné ovládacímu Button prvku.

Pokud chcete zobrazit stejný text tlačítka pro každou buňku UseColumnTextForButtonValue , nastavte vlastnost na true požadovaný text tlačítka a nastavte ji Text na text požadovaného tlačítka.

Výchozí režim řazení pro tento typ sloupce je NotSortable.

Pokud chcete odpovědět na kliknutí na tlačítko uživatele, zpracujte událost DataGridView.CellClick nebo DataGridView.CellContentClick událost. V obslužné rutině události můžete pomocí DataGridViewCellEventArgs.ColumnIndex vlastnosti určit, zda došlo ke kliknutí ve sloupci tlačítka. Pomocí vlastnosti můžete DataGridViewCellEventArgs.RowIndex určit, zda došlo k kliknutí v buňce tlačítka, a ne v záhlaví sloupce.

Poznámka:

Pokud jsou styly vizuálů povolené, tlačítka ve sloupci tlačítka se malují pomocí ButtonRenderera styly buněk zadané prostřednictvím vlastností, jako DefaultCellStyle například nemají žádný efekt.

Poznámky pro dědice

Při odvozené DataGridViewButtonColumn třídě a přidání nových vlastností do odvozené třídy nezapomeňte přepsat metodu Clone() kopírování nových vlastností během operací klonování. Měli byste také volat metodu základní třídy Clone() tak, aby vlastnosti základní třídy byly zkopírovány do nové buňky.

Konstruktory

Name Description
DataGridViewButtonColumn()

Inicializuje novou instanci DataGridViewButtonColumn třídy do výchozího stavu.

Vlastnosti

Name Description
AutoSizeMode

Získá nebo nastaví režim, podle kterého sloupec automaticky upraví jeho šíř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 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

Získá ovládací prvek DataGridView přidružený k tomuto prvku.

(Zděděno od DataGridViewElement)
DataPropertyName

Získá nebo nastaví název vlastnosti zdroje dat nebo databázového sloupce, 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 běhu výchozí buňky záhlaví.

(Zděděno od DataGridViewBand)
Displayed

Získá hodnotu určující, zda je pásma aktuálně zobrazena na obrazovce.

(Zděděno od DataGridViewBand)
DisplayIndex

Získá nebo nastaví pořadí zobrazení sloupce vzhledem k aktuálně zobrazeným sloupcům.

(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, když je v režimu výplně vzhledem k šířce jiných sloupců režimu výplně v ovládacím prvku.

(Zděděno od DataGridViewColumn)
FlatStyle

Získá nebo nastaví vzhled plochého stylu buněk tlačítka ve sloupci.

Frozen

Získá nebo nastaví hodnotu určující, zda sloupec se přesune, když uživatel posune DataGridView ovládací prvek vodorovně.

(Zděděno od DataGridViewColumn)
HasDefaultCellStyle

Získá hodnotu určující, zda DefaultCellStyle byla vlastnost nastavena.

(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 DataGridViewBandzáhlaví .

(Zděděno od DataGridViewBand)
HeaderText

Získá nebo nastaví text titulku v buňce záhlaví sloupce.

(Zděděno od DataGridViewColumn)
Index

Získá relativní pozici pásma uvnitř DataGridView ovládacího prvku.

(Zděděno od DataGridViewBand)
InheritedAutoSizeMode

Získá režim nastavení velikosti pro sloupec.

(Zděděno od DataGridViewColumn)
InheritedStyle

Získá styl buňky aktuálně použitý pro sloupec.

(Zděděno od DataGridViewColumn)
IsDataBound

Získá hodnotu určující, zda sloupec je vázán na zdroj dat.

(Zděděno od DataGridViewColumn)
IsRow

Získá hodnotu určující, zda pruh 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 urč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 možné měnit velikost.

(Zděděno od DataGridViewColumn)
Selected

Získá nebo nastaví hodnotu určující, zda pásmo je ve vybraném stavu uživatelského rozhraní (UI).

(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á stav uživatelského rozhraní prvku.

(Zděděno od DataGridViewElement)
Tag

Získá nebo nastaví objekt, který obsahuje data pro přidružení k pásmu.

(Zděděno od DataGridViewBand)
Text

Získá nebo nastaví výchozí text zobrazený v buňce tlačítka.

ToolTipText

Získá nebo nastaví text použitý pro popisy.

(Zděděno od DataGridViewColumn)
UseColumnTextForButtonValue

Získá nebo nastaví hodnotu urč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

Name Description
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é DataGridViewBand a volitelně uvolní spravované prostředky.

(Zděděno od DataGridViewColumn)
Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(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()

Získá Type aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
OnDataGridViewChanged()

Volá se, když je skupina přidružena 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

Name Description
Disposed

Nastane, když je DataGridViewColumn uvolněna.

(Zděděno od DataGridViewColumn)

Platí pro

Viz také