Share via


DataGridViewButtonColumn Kelas

Definisi

Menghosting DataGridViewButtonCell kumpulan objek.

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
Warisan
Atribut

Contoh

Contoh kode berikut menunjukkan cara menggunakan DataGridViewButtonColumn untuk melakukan tindakan pada baris tertentu. Dalam contoh ini, DataGridView.CellClick penanganan aktivitas terlebih dahulu menentukan apakah klik ada pada sel tombol, lalu mengambil objek bisnis yang terkait dengan baris. Contoh ini adalah bagian dari contoh yang lebih besar yang tersedia di Cara: Mengakses Objek dalam Daftar Drop-Down DataGridViewComboBoxCell Formulir Windows.

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

Keterangan

Kelas DataGridViewButtonColumn adalah jenis kelas khusus yang DataGridViewColumn digunakan untuk menghosting sel secara logis yang merespons input pengguna sederhana. DataGridViewButtonColumn A memiliki yang terkait DataGridViewButtonCell dalam setiap DataGridViewRow yang bersinggungan dengannya. Setiap sel memasok antarmuka pengguna (UI) yang mirip Button dengan kontrol.

Untuk menampilkan teks tombol yang sama untuk setiap sel, atur UseColumnTextForButtonValue properti ke true dan atur Text properti ke teks tombol yang diinginkan.

Mode pengurutan default untuk jenis kolom ini adalah NotSortable.

Untuk merespons klik tombol pengguna, tangani DataGridView.CellClick acara atau DataGridView.CellContentClick . Di penanganan aktivitas, Anda dapat menggunakan DataGridViewCellEventArgs.ColumnIndex properti untuk menentukan apakah klik terjadi di kolom tombol. Anda dapat menggunakan DataGridViewCellEventArgs.RowIndex properti untuk menentukan apakah klik terjadi dalam sel tombol dan bukan pada header kolom.

Catatan

Saat gaya visual diaktifkan, tombol dalam kolom tombol dicat menggunakan ButtonRenderer, dan gaya sel yang ditentukan melalui properti seperti DefaultCellStyle tidak berpengaruh.

Catatan Bagi Inheritor

Ketika Anda berasal dari DataGridViewButtonColumn dan menambahkan properti baru ke kelas turunan, pastikan untuk mengambil Clone() alih metode untuk menyalin properti baru selama operasi kloning. Anda juga harus memanggil metode kelas Clone() dasar sehingga properti kelas dasar disalin ke sel baru.

Konstruktor

DataGridViewButtonColumn()

Menginisialisasi instans DataGridViewButtonColumn baru kelas ke status default.

Properti

AutoSizeMode

Mendapatkan atau mengatur mode di mana kolom secara otomatis menyesuaikan lebarnya.

(Diperoleh dari DataGridViewColumn)
CellTemplate

Mendapatkan atau mengatur templat yang digunakan untuk membuat sel baru.

CellType

Mendapatkan jenis run-time templat sel.

(Diperoleh dari DataGridViewColumn)
ContextMenuStrip

Mendapatkan atau mengatur menu pintasan untuk kolom.

(Diperoleh dari DataGridViewColumn)
DataGridView

Mendapatkan kontrol yang DataGridView terkait dengan elemen ini.

(Diperoleh dari DataGridViewElement)
DataPropertyName

Mendapatkan atau mengatur nama properti sumber data atau kolom database yang DataGridViewColumn terikat.

(Diperoleh dari DataGridViewColumn)
DefaultCellStyle

Mendapatkan atau mengatur gaya sel default kolom.

DefaultHeaderCellType

Mendapatkan atau mengatur jenis run-time dari sel header default.

(Diperoleh dari DataGridViewBand)
Displayed

Mendapatkan nilai yang menunjukkan apakah pita saat ini ditampilkan di layar.

(Diperoleh dari DataGridViewBand)
DisplayIndex

Mendapatkan atau mengatur urutan tampilan kolom relatif terhadap kolom yang saat ini ditampilkan.

(Diperoleh dari DataGridViewColumn)
DividerWidth

Mendapatkan atau mengatur lebar, dalam piksel, pembagi kolom.

(Diperoleh dari DataGridViewColumn)
FillWeight

Mendapatkan atau mengatur nilai yang mewakili lebar kolom saat berada dalam mode isian relatif terhadap lebar kolom mode isian lainnya dalam kontrol.

(Diperoleh dari DataGridViewColumn)
FlatStyle

Mendapatkan atau mengatur tampilan gaya datar sel tombol di kolom.

Frozen

Mendapatkan atau mengatur nilai yang menunjukkan apakah kolom akan bergerak saat pengguna menggulir DataGridView kontrol secara horizontal.

(Diperoleh dari DataGridViewColumn)
HasDefaultCellStyle

Mendapatkan nilai yang menunjukkan apakah DefaultCellStyle properti telah ditetapkan.

(Diperoleh dari DataGridViewBand)
HeaderCell

Mendapatkan atau mengatur DataGridViewColumnHeaderCell yang mewakili header kolom.

(Diperoleh dari DataGridViewColumn)
HeaderCellCore

Mendapatkan atau mengatur sel header dari DataGridViewBand.

(Diperoleh dari DataGridViewBand)
HeaderText

Mendapatkan atau mengatur teks caption pada sel header kolom.

(Diperoleh dari DataGridViewColumn)
Index

Mendapatkan posisi relatif band dalam DataGridView kontrol.

(Diperoleh dari DataGridViewBand)
InheritedAutoSizeMode

Mendapatkan mode ukuran yang berlaku untuk kolom.

(Diperoleh dari DataGridViewColumn)
InheritedStyle

Mendapatkan gaya sel yang saat ini diterapkan ke kolom.

(Diperoleh dari DataGridViewColumn)
IsDataBound

Mendapatkan nilai yang menunjukkan apakah kolom terikat ke sumber data.

(Diperoleh dari DataGridViewColumn)
IsRow

Mendapatkan nilai yang menunjukkan apakah pita mewakili baris.

(Diperoleh dari DataGridViewBand)
MinimumWidth

Mendapatkan atau mengatur lebar minimum, dalam piksel, dari kolom.

(Diperoleh dari DataGridViewColumn)
Name

Mendapatkan atau mengatur nama kolom.

(Diperoleh dari DataGridViewColumn)
ReadOnly

Mendapatkan atau mengatur nilai yang menunjukkan apakah pengguna dapat mengedit sel kolom.

(Diperoleh dari DataGridViewColumn)
Resizable

Mendapatkan atau menetapkan nilai yang menunjukkan apakah kolom dapat diubah bentuknya.

(Diperoleh dari DataGridViewColumn)
Selected

Mendapatkan atau menetapkan nilai yang menunjukkan apakah pita berada dalam status antarmuka pengguna (UI) yang dipilih.

(Diperoleh dari DataGridViewBand)
Site

Mendapatkan atau mengatur situs kolom.

(Diperoleh dari DataGridViewColumn)
SortMode

Mendapatkan atau mengatur mode pengurutan untuk kolom.

(Diperoleh dari DataGridViewColumn)
State

Mendapatkan status antarmuka pengguna (UI) dari elemen .

(Diperoleh dari DataGridViewElement)
Tag

Mendapatkan atau mengatur objek yang berisi data untuk dikaitkan dengan pita.

(Diperoleh dari DataGridViewBand)
Text

Mendapatkan atau mengatur teks default yang ditampilkan pada sel tombol.

ToolTipText

Mendapatkan atau mengatur teks yang digunakan untuk TipsAlat.

(Diperoleh dari DataGridViewColumn)
UseColumnTextForButtonValue

Mendapatkan atau mengatur nilai yang menunjukkan apakah Text nilai properti ditampilkan sebagai teks tombol untuk sel di kolom ini.

ValueType

Mendapatkan atau mengatur tipe data nilai dalam sel kolom.

(Diperoleh dari DataGridViewColumn)
Visible

Mendapatkan atau menetapkan nilai yang menunjukkan apakah kolom terlihat.

(Diperoleh dari DataGridViewColumn)
Width

Mendapatkan atau mengatur lebar kolom saat ini.

(Diperoleh dari DataGridViewColumn)

Metode

Clone()

Membuat salinan yang tepat dari kolom ini.

Dispose()

Merilis semua sumber daya yang DataGridViewBanddigunakan oleh .

(Diperoleh dari DataGridViewBand)
Dispose(Boolean)

Merilis sumber daya tidak terkelola yang digunakan oleh DataGridViewBand dan secara opsional merilis sumber daya terkelola.

(Diperoleh dari DataGridViewColumn)
Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetPreferredWidth(DataGridViewAutoSizeColumnMode, Boolean)

Menghitung lebar kolom yang ideal berdasarkan kriteria yang ditentukan.

(Diperoleh dari DataGridViewColumn)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
OnDataGridViewChanged()

Dipanggil ketika band dikaitkan dengan yang berbeda DataGridView.

(Diperoleh dari DataGridViewBand)
RaiseCellClick(DataGridViewCellEventArgs)

Memunculkan kejadian CellClick.

(Diperoleh dari DataGridViewElement)
RaiseCellContentClick(DataGridViewCellEventArgs)

Memunculkan kejadian CellContentClick.

(Diperoleh dari DataGridViewElement)
RaiseCellContentDoubleClick(DataGridViewCellEventArgs)

Memunculkan kejadian CellContentDoubleClick.

(Diperoleh dari DataGridViewElement)
RaiseCellValueChanged(DataGridViewCellEventArgs)

Memunculkan kejadian CellValueChanged.

(Diperoleh dari DataGridViewElement)
RaiseDataError(DataGridViewDataErrorEventArgs)

Memunculkan kejadian DataError.

(Diperoleh dari DataGridViewElement)
RaiseMouseWheel(MouseEventArgs)

Memunculkan kejadian MouseWheel.

(Diperoleh dari DataGridViewElement)
ToString()

Mendapatkan string yang menjelaskan kolom .

Acara

Disposed

Terjadi ketika dibuang DataGridViewColumn .

(Diperoleh dari DataGridViewColumn)

Berlaku untuk

Lihat juga