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

Örnekler

Aşağıdaki kod örneğinde, belirli satırlarda eylem gerçekleştirmek için nasıl DataGridViewButtonColumn kullanılacağı gösterilmektedir. Bu örnekte, DataGridView.CellClick olay işleyicisi önce düğme hücresinde tıklama olup olmadığını belirler, ardından satırla ilişkilendirilmiş bir iş nesnesi alır. Bu örnek, Nasıl yapılır: Windows Forms DataGridViewComboBoxCell Drop-Down Listesindeki Nesnelere Erişme başlığı altında 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şlerine yanıt veren hücreleri mantıksal olarak barındırmak için kullanılan özel bir sınıf türüdürDataGridViewColumn. A,kendisiyle DataGridViewButtonColumn kesişen her DataGridViewRow öğeyle ilişkilidirDataGridViewButtonCell. 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ğini 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 üst bilgisinde değil düğme hücresinde olup olmadığını belirlemek için kullanabilirsiniz.

Uyarı

Görsel stiller etkinleştirildiğinde, düğme sütunundaki düğmeler kullanılarak ButtonRendererboyanabilir 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

Name Description
DataGridViewButtonColumn()

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

Özellikler

Name Description
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ütunun 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ısı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ğer 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 üst bilgisini 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 resim yazısı metnini alır veya ayarlar.

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

Bandın denetim içindeki DataGridView göreli konumunu alır.

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

Sütun için boyutlandırma modunun geçerli olduğunu gösterir.

(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ı gösteren 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

Name Description
Clone()

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

Dispose()

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

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

tarafından DataGridViewBand kullanılan yönetilmeyen kaynakları serbest bırakır ve isteğe bağlı olarak yönetilen kaynakları 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()

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

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

Geçerli Objectbasit 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

Name Description
Disposed

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

(Devralındığı yer: DataGridViewColumn)

Şunlara uygulanır

Ayrıca bkz.