DataGridViewButtonColumn Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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) |