DataGridViewButtonColumn Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Är värd för en samling DataGridViewButtonCell objekt.
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
- Arv
- Attribut
Exempel
Följande kodexempel visar hur du använder en DataGridViewButtonColumn för att utföra åtgärder på vissa rader. I det här exemplet avgör en DataGridView.CellClick händelsehanterare först om ett klick finns i en knappcell och hämtar sedan ett affärsobjekt som är associerat med raden. Det här exemplet är en del av ett större exempel i How to: Access Objects in a 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
Kommentarer
Klassen DataGridViewButtonColumn är en specialiserad typ av klassen DataGridViewColumn som används för att logiskt vara värd för celler som svarar på enkla användarindata. A DataGridViewButtonColumn har en associerad DataGridViewButtonCell i varje DataGridViewRow som korsar den. Varje cell tillhandahåller ett användargränssnitt (UI) som liknar en Button kontroll.
Om du vill visa samma knapptext för varje cell anger du UseColumnTextForButtonValue egenskapen till true och anger Text egenskapen till önskad knapptext.
Standardsorteringsläget för den här kolumntypen är NotSortable.
Om du vill svara på klick på användarknappar hanterar du DataGridView.CellClick händelsen eller DataGridView.CellContentClick . I händelsehanteraren kan du använda DataGridViewCellEventArgs.ColumnIndex egenskapen för att avgöra om klicket inträffade i knappkolumnen. Du kan använda DataGridViewCellEventArgs.RowIndex egenskapen för att avgöra om klicket inträffade i en knappcell och inte i kolumnrubriken.
Note
När visuella format är aktiverade målas knapparna i en knappkolumn med hjälp av en ButtonRenderer, och cellformat som anges via egenskaper som DefaultCellStyle inte har någon effekt.
Anteckningar till arvingar
När du härleder från DataGridViewButtonColumn och lägger till nya egenskaper i den härledda klassen måste du åsidosätta Clone() metoden för att kopiera de nya egenskaperna under kloningsåtgärderna. Du bör också anropa basklassens Clone() metod så att egenskaperna för basklassen kopieras till den nya cellen.
Konstruktorer
| Name | Description |
|---|---|
| DataGridViewButtonColumn() |
Initierar en ny instans av DataGridViewButtonColumn klassen till standardtillståndet. |
Egenskaper
| Name | Description |
|---|---|
| AutoSizeMode |
Hämtar eller anger det läge med vilket kolumnen automatiskt justerar sin bredd. (Ärvd från DataGridViewColumn) |
| CellTemplate |
Hämtar eller anger mallen som används för att skapa nya celler. |
| CellType |
Hämtar körningstypen för cellmallen. (Ärvd från DataGridViewColumn) |
| ContextMenuStrip |
Hämtar eller ställer in snabbmenyn för kolumnen. (Ärvd från DataGridViewColumn) |
| DataGridView |
Hämtar kontrollen DataGridView som är associerad med det här elementet. (Ärvd från DataGridViewElement) |
| DataPropertyName |
Hämtar eller anger namnet på den datakällegenskap eller databaskolumn som DataGridViewColumn är bunden till. (Ärvd från DataGridViewColumn) |
| DefaultCellStyle |
Hämtar eller anger kolumnens standardcellformat. |
| DefaultHeaderCellType |
Hämtar eller anger körningstypen för standardhuvudcellen. (Ärvd från DataGridViewBand) |
| Displayed |
Hämtar ett värde som anger om bandet visas på skärmen. (Ärvd från DataGridViewBand) |
| DisplayIndex |
Hämtar eller anger visningsordningen för kolumnen i förhållande till de kolumner som visas för närvarande. (Ärvd från DataGridViewColumn) |
| DividerWidth |
Hämtar eller anger bredden i bildpunkter för kolumnavdelaren. (Ärvd från DataGridViewColumn) |
| FillWeight |
Hämtar eller anger ett värde som representerar kolumnens bredd när den är i fyllningsläge i förhållande till bredderna för andra fyllningslägeskolumner i kontrollen. (Ärvd från DataGridViewColumn) |
| FlatStyle |
Hämtar eller ställer in utseendet på knappcellerna i kolumnen i platt stil. |
| Frozen |
Hämtar eller anger ett värde som anger om en kolumn ska flyttas när en användare rullar DataGridView kontrollen vågrätt. (Ärvd från DataGridViewColumn) |
| HasDefaultCellStyle |
Hämtar ett värde som anger om egenskapen DefaultCellStyle har angetts. (Ärvd från DataGridViewBand) |
| HeaderCell |
Hämtar eller anger DataGridViewColumnHeaderCell som representerar kolumnrubriken. (Ärvd från DataGridViewColumn) |
| HeaderCellCore |
Hämtar eller anger rubrikcellen i DataGridViewBand. (Ärvd från DataGridViewBand) |
| HeaderText |
Hämtar eller anger bildtexten i kolumnens rubrikcell. (Ärvd från DataGridViewColumn) |
| Index |
Hämtar bandets relativa position inom DataGridView kontrollen. (Ärvd från DataGridViewBand) |
| InheritedAutoSizeMode |
Hämtar storleksläget i praktiken för kolumnen. (Ärvd från DataGridViewColumn) |
| InheritedStyle |
Hämtar cellformatet som för närvarande tillämpas på kolumnen. (Ärvd från DataGridViewColumn) |
| IsDataBound |
Hämtar ett värde som anger om kolumnen är bunden till en datakälla. (Ärvd från DataGridViewColumn) |
| IsRow |
Hämtar ett värde som anger om bandet representerar en rad. (Ärvd från DataGridViewBand) |
| MinimumWidth |
Hämtar eller anger den minsta bredden, i bildpunkter, för kolumnen. (Ärvd från DataGridViewColumn) |
| Name |
Hämtar eller anger namnet på kolumnen. (Ärvd från DataGridViewColumn) |
| ReadOnly |
Hämtar eller anger ett värde som anger om användaren kan redigera kolumnens celler. (Ärvd från DataGridViewColumn) |
| Resizable |
Hämtar eller anger ett värde som anger om kolumnen kan ändras. (Ärvd från DataGridViewColumn) |
| Selected |
Hämtar eller anger ett värde som anger om bandet är i ett valt användargränssnittstillstånd (UI). (Ärvd från DataGridViewBand) |
| Site |
Hämtar eller anger platsen för kolumnen. (Ärvd från DataGridViewColumn) |
| SortMode |
Hämtar eller anger sorteringsläget för kolumnen. (Ärvd från DataGridViewColumn) |
| State |
Hämtar användargränssnittstillståndet (UI) för elementet. (Ärvd från DataGridViewElement) |
| Tag |
Hämtar eller anger det objekt som innehåller data som ska associeras med bandet. (Ärvd från DataGridViewBand) |
| Text |
Hämtar eller anger standardtexten som visas i knappcellen. |
| ToolTipText |
Hämtar eller anger den text som används för Knappbeskrivningar. (Ärvd från DataGridViewColumn) |
| UseColumnTextForButtonValue |
Hämtar eller anger ett värde som anger om Text egenskapsvärdet visas som knapptext för celler i den här kolumnen. |
| ValueType |
Hämtar eller anger datatypen för värdena i kolumnens celler. (Ärvd från DataGridViewColumn) |
| Visible |
Hämtar eller anger ett värde som anger om kolumnen är synlig. (Ärvd från DataGridViewColumn) |
| Width |
Hämtar eller anger kolumnens aktuella bredd. (Ärvd från DataGridViewColumn) |
Metoder
| Name | Description |
|---|---|
| Clone() |
Skapar en exakt kopia av den här kolumnen. |
| Dispose() |
Släpper alla resurser som används av DataGridViewBand. (Ärvd från DataGridViewBand) |
| Dispose(Boolean) |
Släpper de ohanterade resurser som används av DataGridViewBand och släpper eventuellt de hanterade resurserna. (Ärvd från DataGridViewColumn) |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetPreferredWidth(DataGridViewAutoSizeColumnMode, Boolean) |
Beräknar den ideala bredden för kolumnen baserat på de angivna kriterierna. (Ärvd från DataGridViewColumn) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| OnDataGridViewChanged() |
Anropas när bandet är associerat med en annan DataGridView. (Ärvd från DataGridViewBand) |
| RaiseCellClick(DataGridViewCellEventArgs) |
Genererar händelsen CellClick . (Ärvd från DataGridViewElement) |
| RaiseCellContentClick(DataGridViewCellEventArgs) |
Genererar händelsen CellContentClick . (Ärvd från DataGridViewElement) |
| RaiseCellContentDoubleClick(DataGridViewCellEventArgs) |
Genererar händelsen CellContentDoubleClick . (Ärvd från DataGridViewElement) |
| RaiseCellValueChanged(DataGridViewCellEventArgs) |
Genererar händelsen CellValueChanged . (Ärvd från DataGridViewElement) |
| RaiseDataError(DataGridViewDataErrorEventArgs) |
Genererar händelsen DataError . (Ärvd från DataGridViewElement) |
| RaiseMouseWheel(MouseEventArgs) |
Genererar händelsen MouseWheel . (Ärvd från DataGridViewElement) |
| ToString() |
Hämtar en sträng som beskriver kolumnen. |
Händelser
| Name | Description |
|---|---|
| Disposed |
Inträffar när tas DataGridViewColumn bort. (Ärvd från DataGridViewColumn) |