Freigeben über


DataGridViewButtonColumn Klasse

Definition

Hosten einer Auflistung von DataGridViewButtonCell Objekten.

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
Vererbung
Attribute

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Sie aktionen DataGridViewButtonColumn für bestimmte Zeilen verwenden. In diesem Beispiel bestimmt ein DataGridView.CellClick Ereignishandler zunächst, ob sich ein Klick auf eine Schaltflächenzelle befindet, und ruft dann ein Geschäftsobjekt ab, das der Zeile zugeordnet ist. Dieses Beispiel ist Teil eines größeren Beispiels, das in How to: Access Objects in a Windows Forms DataGridViewComboBoxCell Drop-Down List verfügbar ist.

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

Hinweise

Die DataGridViewButtonColumn Klasse ist ein spezieller Typ der Klasse, die DataGridViewColumn zum logischen Hosten von Zellen verwendet wird, die auf einfache Benutzereingaben reagieren. A DataGridViewButtonColumn weist eine zuordnungsbedingte DataGridViewButtonCell Verbindung auf DataGridViewRow , die sie überschneidet. Jede Zelle stellt eine Benutzeroberfläche bereit, die einem Button Steuerelement ähnelt.

Um denselben Schaltflächentext für jede Zelle anzuzeigen, legen Sie die UseColumnTextForButtonValue Eigenschaft auf true den gewünschten Schaltflächentext fest, und legen Sie die Text Eigenschaft auf den gewünschten Schaltflächentext fest.

Der Standardsortierungsmodus für diesen Spaltentyp lautet NotSortable.

Um auf Benutzerschaltflächenklicks zu reagieren, behandeln Sie das Ereignis oder DataGridView.CellContentClick das DataGridView.CellClick Ereignis. Im Ereignishandler können Sie mithilfe der DataGridViewCellEventArgs.ColumnIndex Eigenschaft ermitteln, ob der Klick in der Schaltflächenspalte aufgetreten ist. Mit der DataGridViewCellEventArgs.RowIndex Eigenschaft können Sie bestimmen, ob der Klick in einer Schaltflächenzelle und nicht in der Spaltenüberschrift aufgetreten ist.

Hinweis

Wenn visuelle Formatvorlagen aktiviert sind, werden die Schaltflächen in einer Schaltflächenspalte mit einer ButtonRendererEigenschaft und zellenformatvorlagen gezeichnet, z DefaultCellStyle . B. ohne Auswirkung.

Hinweise für Vererber

Wenn Sie von der abgeleiteten Klasse abgeleitete Eigenschaften ableiten DataGridViewButtonColumn und neue Eigenschaften hinzufügen, müssen Sie die Clone() Methode überschreiben, um die neuen Eigenschaften während Klonvorgängen zu kopieren. Sie sollten auch die Methode der Basisklasse Clone() aufrufen, damit die Eigenschaften der Basisklasse in die neue Zelle kopiert werden.

Konstruktoren

Name Beschreibung
DataGridViewButtonColumn()

Initialisiert eine neue Instanz der DataGridViewButtonColumn Klasse in den Standardzustand.

Eigenschaften

Name Beschreibung
AutoSizeMode

Ruft den Modus ab, um den die Spalte automatisch die Breite anpasst, oder legt den Modus fest.

(Geerbt von DataGridViewColumn)
CellTemplate

Ruft die Vorlage ab, die zum Erstellen neuer Zellen verwendet wird, oder legt sie fest.

CellType

Ruft den Laufzeittyp der Zellenvorlage ab.

(Geerbt von DataGridViewColumn)
ContextMenuStrip

Ruft ab oder legt das Kontextmenü für die Spalte fest.

(Geerbt von DataGridViewColumn)
DataGridView

Ruft das DataGridView diesem Element zugeordnete Steuerelement ab.

(Geerbt von DataGridViewElement)
DataPropertyName

Dient zum Abrufen oder Festlegen des Namens der Datenquelleneigenschaft oder Datenbankspalte, an die die DataGridViewColumn Datenquelle gebunden ist.

(Geerbt von DataGridViewColumn)
DefaultCellStyle

Ruft die Standardzellenformatvorlage der Spalte ab oder legt sie fest.

DefaultHeaderCellType

Dient zum Abrufen oder Festlegen des Laufzeittyps der Standardkopfzeilenzelle.

(Geerbt von DataGridViewBand)
Displayed

Ruft einen Wert ab, der angibt, ob das Band derzeit auf dem Bildschirm angezeigt wird.

(Geerbt von DataGridViewBand)
DisplayIndex

Ruft die Anzeigereihenfolge der Spalte relativ zu den aktuell angezeigten Spalten ab oder legt sie fest.

(Geerbt von DataGridViewColumn)
DividerWidth

Ruft die Breite der Spaltentrennlinie in Pixel ab oder legt sie fest.

(Geerbt von DataGridViewColumn)
FillWeight

Dient zum Abrufen oder Festlegen eines Werts, der die Breite der Spalte darstellt, wenn sie sich im Füllmodus relativ zu den Breiten anderer Füllmodusspalten im Steuerelement befindet.

(Geerbt von DataGridViewColumn)
FlatStyle

Ruft die flache Darstellung der Schaltflächenzellen in der Spalte ab oder legt sie fest.

Frozen

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob eine Spalte verschoben wird, wenn ein Benutzer das DataGridView Steuerelement horizontal scrollt.

(Geerbt von DataGridViewColumn)
HasDefaultCellStyle

Ruft einen Wert ab, der angibt, ob die DefaultCellStyle Eigenschaft festgelegt wurde.

(Geerbt von DataGridViewBand)
HeaderCell

Dient zum Abrufen oder Festlegen des Werts, der DataGridViewColumnHeaderCell die Spaltenüberschrift darstellt.

(Geerbt von DataGridViewColumn)
HeaderCellCore

Ruft die Kopfzeilenzelle der DataGridViewBand.

(Geerbt von DataGridViewBand)
HeaderText

Dient zum Abrufen oder Festlegen des Beschriftungstexts in der Kopfzeilenzelle der Spalte.

(Geerbt von DataGridViewColumn)
Index

Ruft die relative Position des Bereichs innerhalb des DataGridView Steuerelements ab.

(Geerbt von DataGridViewBand)
InheritedAutoSizeMode

Ruft den Größenmodus für die Spalte ab.

(Geerbt von DataGridViewColumn)
InheritedStyle

Ruft die aktuell auf die Spalte angewendete Zellenformatvorlage ab.

(Geerbt von DataGridViewColumn)
IsDataBound

Ruft einen Wert ab, der angibt, ob die Spalte an eine Datenquelle gebunden ist.

(Geerbt von DataGridViewColumn)
IsRow

Ruft einen Wert ab, der angibt, ob das Band eine Zeile darstellt.

(Geerbt von DataGridViewBand)
MinimumWidth

Ruft die Mindestbreite der Spalte in Pixeln ab oder legt sie fest.

(Geerbt von DataGridViewColumn)
Name

Dient zum Abrufen oder Festlegen des Namens der Spalte.

(Geerbt von DataGridViewColumn)
ReadOnly

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob der Benutzer die Zellen der Spalte bearbeiten kann.

(Geerbt von DataGridViewColumn)
Resizable

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die Größe der Spalte geändert werden kann.

(Geerbt von DataGridViewColumn)
Selected

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob sich das Band in einem ausgewählten Benutzeroberflächenzustand befindet.

(Geerbt von DataGridViewBand)
Site

Dient zum Abrufen oder Festlegen der Website der Spalte.

(Geerbt von DataGridViewColumn)
SortMode

Dient zum Abrufen oder Festlegen des Sortiermodus für die Spalte.

(Geerbt von DataGridViewColumn)
State

Ruft den Benutzeroberflächenstatus des Elements ab.

(Geerbt von DataGridViewElement)
Tag

Dient zum Abrufen oder Festlegen des Objekts, das Daten enthält, die dem Band zugeordnet werden sollen.

(Geerbt von DataGridViewBand)
Text

Dient zum Abrufen oder Festlegen des Standardtexts, der in der Schaltflächenzelle angezeigt wird.

ToolTipText

Dient zum Abrufen oder Festlegen des Texts, der für QuickInfos verwendet wird.

(Geerbt von DataGridViewColumn)
UseColumnTextForButtonValue

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob der Text Eigenschaftswert als Schaltflächentext für Zellen in dieser Spalte angezeigt wird.

ValueType

Dient zum Abrufen oder Festlegen des Datentyps der Werte in den Zellen der Spalte.

(Geerbt von DataGridViewColumn)
Visible

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die Spalte sichtbar ist.

(Geerbt von DataGridViewColumn)
Width

Ruft die aktuelle Breite der Spalte ab oder legt sie fest.

(Geerbt von DataGridViewColumn)

Methoden

Name Beschreibung
Clone()

Erstellt eine genaue Kopie dieser Spalte.

Dispose()

Veröffentlicht alle ressourcen, die von der DataGridViewBand.

(Geerbt von DataGridViewBand)
Dispose(Boolean)

Gibt die nicht verwalteten Ressourcen frei, die von den DataGridViewBand verwalteten Ressourcen verwendet werden, und gibt optional die verwalteten Ressourcen frei.

(Geerbt von DataGridViewColumn)
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetPreferredWidth(DataGridViewAutoSizeColumnMode, Boolean)

Berechnet die ideale Breite der Spalte basierend auf den angegebenen Kriterien.

(Geerbt von DataGridViewColumn)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
OnDataGridViewChanged()

Wird aufgerufen, wenn das Band einem anderen DataGridViewzugeordnet ist.

(Geerbt von DataGridViewBand)
RaiseCellClick(DataGridViewCellEventArgs)

Löst das CellClick-Ereignis aus.

(Geerbt von DataGridViewElement)
RaiseCellContentClick(DataGridViewCellEventArgs)

Löst das CellContentClick-Ereignis aus.

(Geerbt von DataGridViewElement)
RaiseCellContentDoubleClick(DataGridViewCellEventArgs)

Löst das CellContentDoubleClick-Ereignis aus.

(Geerbt von DataGridViewElement)
RaiseCellValueChanged(DataGridViewCellEventArgs)

Löst das CellValueChanged-Ereignis aus.

(Geerbt von DataGridViewElement)
RaiseDataError(DataGridViewDataErrorEventArgs)

Löst das DataError-Ereignis aus.

(Geerbt von DataGridViewElement)
RaiseMouseWheel(MouseEventArgs)

Löst das MouseWheel-Ereignis aus.

(Geerbt von DataGridViewElement)
ToString()

Ruft eine Zeichenfolge ab, die die Spalte beschreibt.

Ereignisse

Name Beschreibung
Disposed

Tritt auf, wenn der DataGridViewColumn Verworfen wird.

(Geerbt von DataGridViewColumn)

Gilt für:

Weitere Informationen