DataGridViewButtonColumn Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ospita una raccolta di DataGridViewButtonCell oggetti .
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
- Ereditarietà
- Attributi
Esempio
Nell'esempio di codice seguente viene illustrato come usare un DataGridViewButtonColumn oggetto per eseguire azioni su righe specifiche. In questo esempio, un DataGridView.CellClick gestore eventi determina innanzitutto se un clic si trova su una cella del pulsante, quindi recupera un oggetto business associato alla riga. Questo esempio fa parte di un esempio più ampio disponibile in 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
Commenti
La DataGridViewButtonColumn classe è un tipo specializzato della DataGridViewColumn classe usata per ospitare logicamente le celle che rispondono a un input utente semplice. A DataGridViewButtonColumn un oggetto è associato DataGridViewButtonCell in ogni DataGridViewRow oggetto che lo interseca. Ogni cella fornisce un'interfaccia utente simile a un Button controllo.
Per visualizzare lo stesso testo del pulsante per ogni cella, impostare la UseColumnTextForButtonValue proprietà su true e impostare la Text proprietà sul testo del pulsante desiderato.
La modalità di ordinamento predefinita per questo tipo di colonna è NotSortable.
Per rispondere ai clic del pulsante utente, gestire l'evento DataGridView.CellClick o DataGridView.CellContentClick . Nel gestore eventi è possibile utilizzare la DataGridViewCellEventArgs.ColumnIndex proprietà per determinare se il clic si è verificato nella colonna del pulsante. È possibile utilizzare la DataGridViewCellEventArgs.RowIndex proprietà per determinare se il clic si è verificato in una cella del pulsante e non nell'intestazione di colonna.
Annotazioni
Quando gli stili di visualizzazione sono abilitati, i pulsanti di una colonna pulsante vengono disegnati usando uno ButtonRendererstile di cella e specificati tramite proprietà come DefaultCellStyle non hanno alcun effetto.
Note per gli eredi
Quando si deriva da DataGridViewButtonColumn e si aggiungono nuove proprietà alla classe derivata, assicurarsi di eseguire l'override del Clone() metodo per copiare le nuove proprietà durante le operazioni di clonazione. È anche necessario chiamare il metodo della classe base Clone() in modo che le proprietà della classe di base vengano copiate nella nuova cella.
Costruttori
| Nome | Descrizione |
|---|---|
| DataGridViewButtonColumn() |
Inizializza una nuova istanza della DataGridViewButtonColumn classe sullo stato predefinito. |
Proprietà
| Nome | Descrizione |
|---|---|
| AutoSizeMode |
Ottiene o imposta la modalità in base alla quale la colonna regola automaticamente la larghezza. (Ereditato da DataGridViewColumn) |
| CellTemplate |
Ottiene o imposta il modello utilizzato per creare nuove celle. |
| CellType |
Ottiene il tipo di runtime del modello di cella. (Ereditato da DataGridViewColumn) |
| ContextMenuStrip |
Ottiene o imposta il menu di scelta rapida per la colonna. (Ereditato da DataGridViewColumn) |
| DataGridView |
Ottiene il DataGridView controllo associato a questo elemento. (Ereditato da DataGridViewElement) |
| DataPropertyName |
Ottiene o imposta il nome della proprietà dell'origine dati o della colonna di database a cui è associato .DataGridViewColumn (Ereditato da DataGridViewColumn) |
| DefaultCellStyle |
Ottiene o imposta lo stile predefinito della cella della colonna. |
| DefaultHeaderCellType |
Ottiene o imposta il tipo di runtime della cella di intestazione predefinita. (Ereditato da DataGridViewBand) |
| Displayed |
Ottiene un valore che indica se la banda è attualmente visualizzata sullo schermo. (Ereditato da DataGridViewBand) |
| DisplayIndex |
Ottiene o imposta l'ordine di visualizzazione della colonna rispetto alle colonne attualmente visualizzate. (Ereditato da DataGridViewColumn) |
| DividerWidth |
Ottiene o imposta la larghezza, espressa in pixel, del divisore di colonna. (Ereditato da DataGridViewColumn) |
| FillWeight |
Ottiene o imposta un valore che rappresenta la larghezza della colonna quando è in modalità di riempimento rispetto alle larghezze di altre colonne in modalità riempimento nel controllo . (Ereditato da DataGridViewColumn) |
| FlatStyle |
Ottiene o imposta l'aspetto flat delle celle del pulsante nella colonna. |
| Frozen |
Ottiene o imposta un valore che indica se una colonna verrà spostata quando un utente scorre il DataGridView controllo orizzontalmente. (Ereditato da DataGridViewColumn) |
| HasDefaultCellStyle |
Ottiene un valore che indica se la DefaultCellStyle proprietà è stata impostata. (Ereditato da DataGridViewBand) |
| HeaderCell |
Ottiene o imposta l'oggetto DataGridViewColumnHeaderCell che rappresenta l'intestazione di colonna. (Ereditato da DataGridViewColumn) |
| HeaderCellCore |
Ottiene o imposta la cella di intestazione dell'oggetto DataGridViewBand. (Ereditato da DataGridViewBand) |
| HeaderText |
Ottiene o imposta il testo della didascalia nella cella di intestazione della colonna. (Ereditato da DataGridViewColumn) |
| Index |
Ottiene la posizione relativa della banda all'interno del DataGridView controllo . (Ereditato da DataGridViewBand) |
| InheritedAutoSizeMode |
Ottiene la modalità di ridimensionamento attiva per la colonna. (Ereditato da DataGridViewColumn) |
| InheritedStyle |
Ottiene lo stile della cella attualmente applicato alla colonna. (Ereditato da DataGridViewColumn) |
| IsDataBound |
Ottiene un valore che indica se la colonna è associata a un'origine dati. (Ereditato da DataGridViewColumn) |
| IsRow |
Ottiene un valore che indica se la banda rappresenta una riga. (Ereditato da DataGridViewBand) |
| MinimumWidth |
Ottiene o imposta la larghezza minima, espressa in pixel, della colonna. (Ereditato da DataGridViewColumn) |
| Name |
Ottiene o imposta il nome della colonna. (Ereditato da DataGridViewColumn) |
| ReadOnly |
Ottiene o imposta un valore che indica se l'utente può modificare le celle della colonna. (Ereditato da DataGridViewColumn) |
| Resizable |
Ottiene o imposta un valore che indica se la colonna è ridimensionabile. (Ereditato da DataGridViewColumn) |
| Selected |
Ottiene o imposta un valore che indica se la banda si trova in uno stato dell'interfaccia utente selezionato. (Ereditato da DataGridViewBand) |
| Site |
Ottiene o imposta il sito della colonna. (Ereditato da DataGridViewColumn) |
| SortMode |
Ottiene o imposta la modalità di ordinamento per la colonna. (Ereditato da DataGridViewColumn) |
| State |
Ottiene lo stato dell'interfaccia utente dell'elemento. (Ereditato da DataGridViewElement) |
| Tag |
Ottiene o imposta l'oggetto che contiene dati da associare alla banda. (Ereditato da DataGridViewBand) |
| Text |
Ottiene o imposta il testo predefinito visualizzato nella cella del pulsante. |
| ToolTipText |
Ottiene o imposta il testo utilizzato per le descrizioni comandi. (Ereditato da DataGridViewColumn) |
| UseColumnTextForButtonValue |
Ottiene o imposta un valore che indica se il valore della Text proprietà viene visualizzato come testo del pulsante per le celle di questa colonna. |
| ValueType |
Ottiene o imposta il tipo di dati dei valori nelle celle della colonna. (Ereditato da DataGridViewColumn) |
| Visible |
Ottiene o imposta un valore che indica se la colonna è visibile. (Ereditato da DataGridViewColumn) |
| Width |
Ottiene o imposta la larghezza corrente della colonna. (Ereditato da DataGridViewColumn) |
Metodi
| Nome | Descrizione |
|---|---|
| Clone() |
Crea una copia esatta di questa colonna. |
| Dispose() |
Rilascia tutte le risorse usate da DataGridViewBand. (Ereditato da DataGridViewBand) |
| Dispose(Boolean) |
Rilascia le risorse non gestite usate da DataGridViewBand e, facoltativamente, rilascia le risorse gestite. (Ereditato da DataGridViewColumn) |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetPreferredWidth(DataGridViewAutoSizeColumnMode, Boolean) |
Calcola la larghezza ideale della colonna in base ai criteri specificati. (Ereditato da DataGridViewColumn) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| OnDataGridViewChanged() |
Chiamato quando la banda è associata a un oggetto diverso DataGridView. (Ereditato da DataGridViewBand) |
| RaiseCellClick(DataGridViewCellEventArgs) |
Genera l'evento CellClick. (Ereditato da DataGridViewElement) |
| RaiseCellContentClick(DataGridViewCellEventArgs) |
Genera l'evento CellContentClick. (Ereditato da DataGridViewElement) |
| RaiseCellContentDoubleClick(DataGridViewCellEventArgs) |
Genera l'evento CellContentDoubleClick. (Ereditato da DataGridViewElement) |
| RaiseCellValueChanged(DataGridViewCellEventArgs) |
Genera l'evento CellValueChanged. (Ereditato da DataGridViewElement) |
| RaiseDataError(DataGridViewDataErrorEventArgs) |
Genera l'evento DataError. (Ereditato da DataGridViewElement) |
| RaiseMouseWheel(MouseEventArgs) |
Genera l'evento MouseWheel. (Ereditato da DataGridViewElement) |
| ToString() |
Ottiene una stringa che descrive la colonna. |
Eventi
| Nome | Descrizione |
|---|---|
| Disposed |
Si verifica quando l'oggetto DataGridViewColumn viene eliminato. (Ereditato da DataGridViewColumn) |