Aracılığıyla paylaş


DataGridViewButtonColumn Sınıf

Tanım

Bir nesne koleksiyonunu barındırıyor DataGridViewButtonCell .

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
Devralma
Öznitelikler

Örnekler

Aşağıdaki kod örneği, belirli satırlarda eylem gerçekleştirmek için nasıl DataGridViewButtonColumn kullanılacağını gösterir. Bu örnekte olay işleyicisi önce DataGridView.CellClick düğme hücresinde tıklama olup olmadığını belirler, ardından satırla ilişkilendirilmiş bir iş nesnesi alır. Bu örnek, How to: Access Objects in a Windows Forms DataGridViewComboBoxCell Drop-Down List bölümünde bulunan daha büyük bir örneğin bir parçasıdır.

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

Açıklamalar

DataGridViewButtonColumn sınıfı, basit kullanıcı girişine yanıt veren hücreleri mantıksal olarak barındırmak için kullanılan sınıfın özelleştirilmiş bir türüdürDataGridViewColumn. A DataGridViewButtonColumn ile kesişen her DataGridViewRow ile ilişkilendirilmiş DataGridViewButtonCell bir vardır. Her hücre, denetime Button benzer bir kullanıcı arabirimi (UI) sağlar.

Her hücre için aynı düğme metnini görüntülemek için özelliğini olarak ayarlayın UseColumnTextForButtonValue ve özelliği istediğiniz düğme metnine ayarlayınText.true

Bu sütun türü için varsayılan sıralama modu şeklindedir NotSortable.

Kullanıcı düğmesi tıklamalarına yanıt vermek için veya DataGridView.CellContentClick olayını işleyebilirDataGridView.CellClick. Olay işleyicisinde, düğme sütununda tıklamanın DataGridViewCellEventArgs.ColumnIndex oluşup oluşmadığını belirlemek için özelliğini kullanabilirsiniz. Özelliği, tıklamanın DataGridViewCellEventArgs.RowIndex sütun başlığında değil düğme hücresinde olup olmadığını belirlemek için kullanabilirsiniz.

Not

Görsel stiller etkinleştirildiğinde, düğme sütunundaki düğmeler bir ButtonRendererkullanılarak boyanmış olur ve gibi DefaultCellStyle özelliklerle belirtilen hücre stillerinin hiçbir etkisi olmaz.

Devralanlara Notlar

öğesinden DataGridViewButtonColumn türetdiğinizde ve türetilmiş sınıfa yeni özellikler eklediğinizde, kopyalama işlemleri sırasında yeni özellikleri kopyalamak için yöntemini geçersiz kıldığınızdan Clone() emin olun. Temel sınıfın Clone() özelliklerinin yeni hücreye kopyalanmaları için temel sınıfın yöntemini de çağırmalısınız.

Oluşturucular

DataGridViewButtonColumn()

Sınıfın DataGridViewButtonColumn yeni bir örneğini varsayılan duruma başlatır.

Özellikler

AutoSizeMode

Sütunun genişliğini otomatik olarak ayarladığı modu alır veya ayarlar.

(Devralındığı yer: DataGridViewColumn)
CellTemplate

Yeni hücre oluşturmak için kullanılan şablonu alır veya ayarlar.

CellType

Hücre şablonunun çalışma zamanı türünü alır.

(Devralındığı yer: DataGridViewColumn)
ContextMenuStrip

Sütun için kısayol menüsünü alır veya ayarlar.

(Devralındığı yer: DataGridViewColumn)
DataGridView

DataGridView Bu öğeyle ilişkili denetimi alır.

(Devralındığı yer: DataGridViewElement)
DataPropertyName

bağlı olduğu veri kaynağı özelliğinin veya veritabanı sütununun DataGridViewColumn adını alır veya ayarlar.

(Devralındığı yer: DataGridViewColumn)
DefaultCellStyle

Sütunun varsayılan hücre stilini alır veya ayarlar.

DefaultHeaderCellType

Varsayılan üst bilgi hücresinin çalışma zamanı türünü alır veya ayarlar.

(Devralındığı yer: DataGridViewBand)
Displayed

Bandın şu anda ekranda görüntülenip görüntülenmediğini gösteren bir değer alır.

(Devralındığı yer: DataGridViewBand)
DisplayIndex

Sütunun görüntülenme sırasını o anda görüntülenen sütunlara göre alır veya ayarlar.

(Devralındığı yer: DataGridViewColumn)
DividerWidth

Sütun ayırıcının genişliğini piksel cinsinden alır veya ayarlar.

(Devralındığı yer: DataGridViewColumn)
FillWeight

Denetimdeki diğer dolgu modu sütunlarının genişliklerine göre doldurma modundayken sütunun genişliğini temsil eden bir değeri alır veya ayarlar.

(Devralındığı yer: DataGridViewColumn)
FlatStyle

Sütundaki düğme hücrelerinin düz stil görünümünü alır veya ayarlar.

Frozen

Kullanıcı denetimi yatay olarak kaydırdığında sütunun DataGridView taşınıp taşınmayacağını belirten bir değer alır veya ayarlar.

(Devralındığı yer: DataGridViewColumn)
HasDefaultCellStyle

Özelliğin ayarlanıp ayarlanmadığını DefaultCellStyle belirten bir değer alır.

(Devralındığı yer: DataGridViewBand)
HeaderCell

Sütun başlığını temsil eden öğesini alır veya ayarlar DataGridViewColumnHeaderCell .

(Devralındığı yer: DataGridViewColumn)
HeaderCellCore

öğesinin üst bilgi hücresini DataGridViewBandalır veya ayarlar.

(Devralındığı yer: DataGridViewBand)
HeaderText

Sütunun üst bilgi hücresindeki başlık metni alır veya ayarlar.

(Devralındığı yer: DataGridViewColumn)
Index

Denetimin içindeki DataGridView bandın göreli konumunu alır.

(Devralındığı yer: DataGridViewBand)
InheritedAutoSizeMode

Sütun için boyutlandırma modunu etkin hale alır.

(Devralındığı yer: DataGridViewColumn)
InheritedStyle

Şu anda sütuna uygulanan hücre stilini alır.

(Devralındığı yer: DataGridViewColumn)
IsDataBound

Sütunun bir veri kaynağına bağlı olup olmadığını belirten bir değer alır.

(Devralındığı yer: DataGridViewColumn)
IsRow

Bandın bir satırı temsil edip etmediğini gösteren bir değer alır.

(Devralındığı yer: DataGridViewBand)
MinimumWidth

Sütunun piksel cinsinden en düşük genişliğini alır veya ayarlar.

(Devralındığı yer: DataGridViewColumn)
Name

Sütunun adını alır veya ayarlar.

(Devralındığı yer: DataGridViewColumn)
ReadOnly

Kullanıcının sütunun hücrelerini düzenleyip düzenleyemeyeceğini belirten bir değer alır veya ayarlar.

(Devralındığı yer: DataGridViewColumn)
Resizable

Sütunun yeniden boyutlandırılabilir olup olmadığını belirten bir değer alır veya ayarlar.

(Devralındığı yer: DataGridViewColumn)
Selected

Bandın seçili kullanıcı arabirimi (UI) durumunda olup olmadığını belirten bir değer alır veya ayarlar.

(Devralındığı yer: DataGridViewBand)
Site

Sütunun sitesini alır veya ayarlar.

(Devralındığı yer: DataGridViewColumn)
SortMode

Sütun için sıralama modunu alır veya ayarlar.

(Devralındığı yer: DataGridViewColumn)
State

öğesinin kullanıcı arabirimi (UI) durumunu alır.

(Devralındığı yer: DataGridViewElement)
Tag

Bantla ilişkilendirilecek verileri içeren nesneyi alır veya ayarlar.

(Devralındığı yer: DataGridViewBand)
Text

Düğme hücresinde görüntülenen varsayılan metni alır veya ayarlar.

ToolTipText

Araç İpuçları için kullanılan metni alır veya ayarlar.

(Devralındığı yer: DataGridViewColumn)
UseColumnTextForButtonValue

Özellik değerinin bu sütundaki Text hücreler için düğme metni olarak görüntülenip görüntülenmeyeceğini belirten bir değer alır veya ayarlar.

ValueType

Sütunun hücrelerindeki değerlerin veri türünü alır veya ayarlar.

(Devralındığı yer: DataGridViewColumn)
Visible

Sütunun görünür olup olmadığını belirten bir değer alır veya ayarlar.

(Devralındığı yer: DataGridViewColumn)
Width

Sütunun geçerli genişliğini alır veya ayarlar.

(Devralındığı yer: DataGridViewColumn)

Yöntemler

Clone()

Bu sütunun tam bir kopyasını oluşturur.

Dispose()

DataGridViewBand tarafından kullanılan tüm kaynakları serbest bırakır.

(Devralındığı yer: DataGridViewBand)
Dispose(Boolean)

DataGridViewBand tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve yönetilen kaynakları isteğe bağlı olarak serbest bırakır.

(Devralındığı yer: DataGridViewColumn)
Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetPreferredWidth(DataGridViewAutoSizeColumnMode, Boolean)

Belirtilen ölçütlere göre sütunun ideal genişliğini hesaplar.

(Devralındığı yer: DataGridViewColumn)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
OnDataGridViewChanged()

Bant farklı DataGridViewbir ile ilişkilendirildiğinde çağrılır.

(Devralındığı yer: DataGridViewBand)
RaiseCellClick(DataGridViewCellEventArgs)

Olayı tetikler CellClick .

(Devralındığı yer: DataGridViewElement)
RaiseCellContentClick(DataGridViewCellEventArgs)

Olayı tetikler CellContentClick .

(Devralındığı yer: DataGridViewElement)
RaiseCellContentDoubleClick(DataGridViewCellEventArgs)

Olayı tetikler CellContentDoubleClick .

(Devralındığı yer: DataGridViewElement)
RaiseCellValueChanged(DataGridViewCellEventArgs)

Olayı tetikler CellValueChanged .

(Devralındığı yer: DataGridViewElement)
RaiseDataError(DataGridViewDataErrorEventArgs)

Olayı tetikler DataError .

(Devralındığı yer: DataGridViewElement)
RaiseMouseWheel(MouseEventArgs)

Olayı tetikler MouseWheel .

(Devralındığı yer: DataGridViewElement)
ToString()

Sütunu açıklayan bir dize alır.

Ekinlikler

Disposed

atıldığında DataGridViewColumn gerçekleşir.

(Devralındığı yer: DataGridViewColumn)

Şunlara uygulanır

Ayrıca bkz.