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.
Contiene un insieme di oggetti 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.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
- 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 gestore eventi determina innanzitutto se un DataGridView.CellClick clic è in 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 all'input utente semplice. Un oggetto DataGridViewButtonColumn ha 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 proprietà su true
e impostare la UseColumnTextForButtonValueText 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 usare la DataGridViewCellEventArgs.ColumnIndex proprietà per determinare se si è verificato il clic nella colonna del pulsante. È possibile usare la proprietà per determinare se il DataGridViewCellEventArgs.RowIndex clic si è verificato in una cella del pulsante e non nell'intestazione della colonna.
Nota
Quando gli stili di visualizzazione sono abilitati, i pulsanti in una colonna del pulsante vengono dipinti usando uno ButtonRendererstile di cella e specificati tramite proprietà, ad esempio 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 Clone() classe base in modo che le proprietà della classe di base vengano copiate nella nuova cella.
Costruttori
DataGridViewButtonColumn() |
Inizializza una nuova istanza della classe DataGridViewButtonColumn in base allo stato predefinito. |
Proprietà
AutoSizeMode |
Ottiene o imposta la modalità usata per la regolazione automatica della larghezza della colonna. (Ereditato da DataGridViewColumn) |
CellTemplate |
Ottiene o imposta il modello usato per la creazione di 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 controllo DataGridView associato a questo elemento. (Ereditato da DataGridViewElement) |
DataPropertyName |
Ottiene o imposta il nome della proprietà dell'origine dati o della colonna del database a cui è associato l'oggetto DataGridViewColumn. (Ereditato da DataGridViewColumn) |
DefaultCellStyle |
Ottiene o imposta lo stile predefinito per le celle della colonna. |
DefaultHeaderCellType |
Ottiene o imposta il tipo in fase di esecuzione 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 relativa alle colonne attualmente visualizzate. (Ereditato da DataGridViewColumn) |
DividerWidth |
Ottiene o imposta la larghezza, in pixel, del divisore di colonne. (Ereditato da DataGridViewColumn) |
FillWeight |
Ottiene o imposta un valore che rappresenta la larghezza della colonna in modalità di riempimento relativamente alle larghezze di altre colonne in modalità di riempimento presenti nel controllo. (Ereditato da DataGridViewColumn) |
FlatStyle |
Ottiene o imposta l'aspetto bidimensionale delle celle pulsante nella colonna. |
Frozen |
Ottiene o imposta un valore che indica se una colonna si sposterà quando l'utente scorre orizzontalmente il controllo DataGridView. (Ereditato da DataGridViewColumn) |
HasDefaultCellStyle |
Ottiene un valore che indica se la proprietà DefaultCellStyle è stata impostata. (Ereditato da DataGridViewBand) |
HeaderCell |
Ottiene o imposta l'oggetto DataGridViewColumnHeaderCell che rappresenta l'intestazione della colonna. (Ereditato da DataGridViewColumn) |
HeaderCellCore |
Ottiene o imposta la cella di intestazione dell'oggetto DataGridViewBand. (Ereditato da DataGridViewBand) |
HeaderText |
Ottiene o imposta il testo del titolo sulla cella di intestazione della colonna. (Ereditato da DataGridViewColumn) |
Index |
Ottiene la posizione relativa della banda all'interno del controllo DataGridView. (Ereditato da DataGridViewBand) |
InheritedAutoSizeMode |
Ottiene la modalità di dimensionamento attiva per la riga. (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, 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 è correntemente selezionata nell'interfaccia utente. (Ereditato da DataGridViewBand) |
Site |
Ottiene o imposta il sito della colonna. (Ereditato da DataGridViewColumn) |
SortMode |
Ottiene o imposta la modalità di ordinamento della colonna. (Ereditato da DataGridViewColumn) |
State |
Ottiene lo stato dell'interfaccia utente dell'elemento. (Ereditato da DataGridViewElement) |
Tag |
Ottiene o imposta l'oggetto contenente i dati da associare alla banda. (Ereditato da DataGridViewBand) |
Text |
Ottiene o imposta il testo predefinito visualizzato sulla cella pulsante. |
ToolTipText |
Ottiene o imposta il testo usato per la descrizione comandi. (Ereditato da DataGridViewColumn) |
UseColumnTextForButtonValue |
Ottiene o imposta un valore che indica se il valore della proprietà Text viene visualizzato come testo pulsante per le celle in questa colonna. |
ValueType |
Ottiene o imposta il tipo di dati dei valori delle 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
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, 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 l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
OnDataGridViewChanged() |
Viene chiamato quando la banda è associata a un oggetto DataGridView differente. (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
Disposed |
Si verifica quando viene eliminato l'oggetto DataGridViewColumn. (Ereditato da DataGridViewColumn) |