Udostępnij za pośrednictwem


DataGridViewButtonColumn Klasa

Definicja

Hostuje kolekcję DataGridViewButtonCell obiektów.

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
Dziedziczenie
Atrybuty

Przykłady

W poniższym przykładzie kodu pokazano, jak używać elementu DataGridViewButtonColumn do wykonywania akcji w określonych wierszach. W tym przykładzie DataGridView.CellClick program obsługi zdarzeń najpierw określa, czy kliknięcie znajduje się w komórce przycisku, a następnie pobiera obiekt biznesowy skojarzony z wierszem. Ten przykład jest częścią większego przykładu dostępnego w temacie Instrukcje: uzyskiwanie dostępu do obiektów w 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

Uwagi

Klasa DataGridViewButtonColumn jest wyspecjalizowanym typem klasy używanej DataGridViewColumn do logicznego hostowania komórek, które reagują na proste dane wejściowe użytkownika. Element DataGridViewButtonColumn ma element skojarzony DataGridViewButtonCell w każdym DataGridViewRow , który przecina go. Każda komórka dostarcza interfejs użytkownika podobny do kontrolki Button .

Aby wyświetlić ten sam tekst przycisku dla każdej komórki, ustaw UseColumnTextForButtonValue właściwość true na i ustaw Text właściwość na żądany tekst przycisku.

Domyślny tryb sortowania dla tego typu kolumny to NotSortable.

Aby odpowiedzieć na kliknięcia przycisku użytkownika, obsłuż zdarzenie DataGridView.CellClick lub DataGridView.CellContentClick . W procedurze obsługi zdarzeń można użyć DataGridViewCellEventArgs.ColumnIndex właściwości , aby określić, czy kliknięcie wystąpiło w kolumnie przycisku. Możesz użyć DataGridViewCellEventArgs.RowIndex właściwości , aby określić, czy kliknięcie miało miejsce w komórce przycisku, a nie w nagłówku kolumny.

Uwaga

Po włączeniu stylów wizualizacji przyciski w kolumnie przycisku są malowane przy użyciu stylów komórek określonych za pomocą ButtonRendererwłaściwości, takich jak DefaultCellStyle brak efektu.

Uwagi dotyczące dziedziczenia

Po utworzeniu i DataGridViewButtonColumn dodaniu nowych właściwości do klasy pochodnej pamiętaj, aby zastąpić metodę Clone() , aby skopiować nowe właściwości podczas operacji klonowania. Należy również wywołać metodę klasy Clone() bazowej, aby właściwości klasy bazowej zostały skopiowane do nowej komórki.

Konstruktory

DataGridViewButtonColumn()

Inicjuje DataGridViewButtonColumn nowe wystąpienie klasy do stanu domyślnego.

Właściwości

AutoSizeMode

Pobiera lub ustawia tryb automatycznego dostosowywania szerokości kolumny.

(Odziedziczone po DataGridViewColumn)
CellTemplate

Pobiera lub ustawia szablon używany do tworzenia nowych komórek.

CellType

Pobiera typ czasu wykonywania szablonu komórki.

(Odziedziczone po DataGridViewColumn)
ContextMenuStrip

Pobiera lub ustawia menu skrótów dla kolumny.

(Odziedziczone po DataGridViewColumn)
DataGridView

DataGridView Pobiera formant skojarzony z tym elementem.

(Odziedziczone po DataGridViewElement)
DataPropertyName

Pobiera lub ustawia nazwę właściwości źródła danych lub kolumny bazy danych, z którą DataGridViewColumn jest powiązana.

(Odziedziczone po DataGridViewColumn)
DefaultCellStyle

Pobiera lub ustawia domyślny styl komórki kolumny.

DefaultHeaderCellType

Pobiera lub ustawia typ czasu wykonywania domyślnej komórki nagłówka.

(Odziedziczone po DataGridViewBand)
Displayed

Pobiera wartość wskazującą, czy pasek jest obecnie wyświetlany na ekranie.

(Odziedziczone po DataGridViewBand)
DisplayIndex

Pobiera lub ustawia kolejność wyświetlania kolumny względem aktualnie wyświetlanych kolumn.

(Odziedziczone po DataGridViewColumn)
DividerWidth

Pobiera lub ustawia szerokość dzielenia kolumn w pikselach.

(Odziedziczone po DataGridViewColumn)
FillWeight

Pobiera lub ustawia wartość reprezentującą szerokość kolumny, gdy jest w trybie wypełnienia względem szerokości innych kolumn trybu wypełnienia w kontrolce.

(Odziedziczone po DataGridViewColumn)
FlatStyle

Pobiera lub ustawia płaski wygląd komórek przycisku w kolumnie.

Frozen

Pobiera lub ustawia wartość wskazującą, czy kolumna zostanie przeniesiona, gdy użytkownik przewija kontrolkę DataGridView w poziomie.

(Odziedziczone po DataGridViewColumn)
HasDefaultCellStyle

Pobiera wartość wskazującą DefaultCellStyle , czy właściwość została ustawiona.

(Odziedziczone po DataGridViewBand)
HeaderCell

Pobiera lub ustawia nagłówek DataGridViewColumnHeaderCell kolumny, który reprezentuje nagłówek kolumny.

(Odziedziczone po DataGridViewColumn)
HeaderCellCore

Pobiera lub ustawia komórkę nagłówka obiektu DataGridViewBand.

(Odziedziczone po DataGridViewBand)
HeaderText

Pobiera lub ustawia podpis tekst w komórce nagłówka kolumny.

(Odziedziczone po DataGridViewColumn)
Index

Pobiera względną pozycję pasma w kontrolce DataGridView .

(Odziedziczone po DataGridViewBand)
InheritedAutoSizeMode

Pobiera tryb określania rozmiaru w kolumnie.

(Odziedziczone po DataGridViewColumn)
InheritedStyle

Pobiera styl komórki aktualnie zastosowany do kolumny.

(Odziedziczone po DataGridViewColumn)
IsDataBound

Pobiera wartość wskazującą, czy kolumna jest powiązana ze źródłem danych.

(Odziedziczone po DataGridViewColumn)
IsRow

Pobiera wartość wskazującą, czy przedział reprezentuje wiersz.

(Odziedziczone po DataGridViewBand)
MinimumWidth

Pobiera lub ustawia minimalną szerokość kolumny w pikselach.

(Odziedziczone po DataGridViewColumn)
Name

Pobiera lub ustawia nazwę kolumny.

(Odziedziczone po DataGridViewColumn)
ReadOnly

Pobiera lub ustawia wartość wskazującą, czy użytkownik może edytować komórki kolumny.

(Odziedziczone po DataGridViewColumn)
Resizable

Pobiera lub ustawia wartość wskazującą, czy kolumna ma możliwość zmiany rozmiaru.

(Odziedziczone po DataGridViewColumn)
Selected

Pobiera lub ustawia wartość wskazującą, czy przedział jest w stanie wybranego interfejsu użytkownika.

(Odziedziczone po DataGridViewBand)
Site

Pobiera lub ustawia lokację kolumny.

(Odziedziczone po DataGridViewColumn)
SortMode

Pobiera lub ustawia tryb sortowania dla kolumny.

(Odziedziczone po DataGridViewColumn)
State

Pobiera stan interfejsu użytkownika elementu.

(Odziedziczone po DataGridViewElement)
Tag

Pobiera lub ustawia obiekt zawierający dane do skojarzenia z pasmem.

(Odziedziczone po DataGridViewBand)
Text

Pobiera lub ustawia domyślny tekst wyświetlany w komórce przycisku.

ToolTipText

Pobiera lub ustawia tekst używany dla etykietek narzędzi.

(Odziedziczone po DataGridViewColumn)
UseColumnTextForButtonValue

Pobiera lub ustawia wartość wskazującą, czy Text wartość właściwości jest wyświetlana jako tekst przycisku dla komórek w tej kolumnie.

ValueType

Pobiera lub ustawia typ danych wartości w komórkach kolumny.

(Odziedziczone po DataGridViewColumn)
Visible

Pobiera lub ustawia wartość wskazującą, czy kolumna jest widoczna.

(Odziedziczone po DataGridViewColumn)
Width

Pobiera lub ustawia bieżącą szerokość kolumny.

(Odziedziczone po DataGridViewColumn)

Metody

Clone()

Tworzy dokładną kopię tej kolumny.

Dispose()

Zwalnia wszelkie zasoby używane przez element DataGridViewBand.

(Odziedziczone po DataGridViewBand)
Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element DataGridViewBand i opcjonalnie zwalnia zasoby zarządzane.

(Odziedziczone po DataGridViewColumn)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetPreferredWidth(DataGridViewAutoSizeColumnMode, Boolean)

Oblicza idealną szerokość kolumny na podstawie określonych kryteriów.

(Odziedziczone po DataGridViewColumn)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
OnDataGridViewChanged()

Wywoływana, gdy zespół jest skojarzony z innym DataGridViewelementem .

(Odziedziczone po DataGridViewBand)
RaiseCellClick(DataGridViewCellEventArgs)

CellClick Zgłasza zdarzenie.

(Odziedziczone po DataGridViewElement)
RaiseCellContentClick(DataGridViewCellEventArgs)

CellContentClick Zgłasza zdarzenie.

(Odziedziczone po DataGridViewElement)
RaiseCellContentDoubleClick(DataGridViewCellEventArgs)

CellContentDoubleClick Zgłasza zdarzenie.

(Odziedziczone po DataGridViewElement)
RaiseCellValueChanged(DataGridViewCellEventArgs)

CellValueChanged Zgłasza zdarzenie.

(Odziedziczone po DataGridViewElement)
RaiseDataError(DataGridViewDataErrorEventArgs)

DataError Zgłasza zdarzenie.

(Odziedziczone po DataGridViewElement)
RaiseMouseWheel(MouseEventArgs)

MouseWheel Zgłasza zdarzenie.

(Odziedziczone po DataGridViewElement)
ToString()

Pobiera ciąg opisujący kolumnę.

Zdarzenia

Disposed

Występuje, gdy element DataGridViewColumn jest usuwany.

(Odziedziczone po DataGridViewColumn)

Dotyczy

Zobacz też