DataGridViewComboBoxColumn 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.
Rappresenta una colonna di DataGridViewComboBoxCell oggetti.
public ref class DataGridViewComboBoxColumn : System::Windows::Forms::DataGridViewColumn
[System.Drawing.ToolboxBitmap(typeof(System.Windows.Forms.DataGridViewComboBoxColumn), "DataGridViewComboBoxColumn.bmp")]
public class DataGridViewComboBoxColumn : System.Windows.Forms.DataGridViewColumn
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicParameterlessConstructor)]
[System.Drawing.ToolboxBitmap(typeof(System.Windows.Forms.DataGridViewComboBoxColumn), "DataGridViewComboBoxColumn")]
public class DataGridViewComboBoxColumn : System.Windows.Forms.DataGridViewColumn
[System.Drawing.ToolboxBitmap(typeof(System.Windows.Forms.DataGridViewComboBoxColumn), "DataGridViewComboBoxColumn")]
public class DataGridViewComboBoxColumn : System.Windows.Forms.DataGridViewColumn
[<System.Drawing.ToolboxBitmap(typeof(System.Windows.Forms.DataGridViewComboBoxColumn), "DataGridViewComboBoxColumn.bmp")>]
type DataGridViewComboBoxColumn = class
inherit DataGridViewColumn
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicParameterlessConstructor)>]
[<System.Drawing.ToolboxBitmap(typeof(System.Windows.Forms.DataGridViewComboBoxColumn), "DataGridViewComboBoxColumn")>]
type DataGridViewComboBoxColumn = class
inherit DataGridViewColumn
[<System.Drawing.ToolboxBitmap(typeof(System.Windows.Forms.DataGridViewComboBoxColumn), "DataGridViewComboBoxColumn")>]
type DataGridViewComboBoxColumn = class
inherit DataGridViewColumn
Public Class DataGridViewComboBoxColumn
Inherits DataGridViewColumn
- Ereditarietà
- Attributi
Esempio
Nell'esempio di codice seguente viene illustrato come usare un DataGridViewComboBoxColumn oggetto per facilitare l'immissione di dati nella TitleOfCourtesy colonna.
#using <System.Data.dll>
#using <System.Windows.Forms.dll>
#using <System.dll>
#using <System.Drawing.dll>
#using <System.Xml.dll>
#using <System.EnterpriseServices.dll>
#using <System.Transactions.dll>
using namespace System;
using namespace System::Data;
using namespace System::Data::SqlClient;
using namespace System::Windows::Forms;
using namespace System::Collections::Generic;
using namespace System::Drawing;
public ref class Employees : public Form
{
private:
DataGridView^ DataGridView1;
private:
DataGridView^ DataGridView2;
public:
[STAThread]
static void Main()
{
try
{
Application::EnableVisualStyles();
Application::Run(gcnew Employees());
}
catch (Exception^ e)
{
MessageBox::Show(e->Message + e->StackTrace);
}
}
private:
Dictionary<String^, bool>^ inOffice;
public:
Employees()
{
DataGridView1 = gcnew DataGridView();
DataGridView2 = gcnew DataGridView();
connectionString =
"Integrated Security=SSPI;Persist Security Info=False;" +
"Initial Catalog=Northwind;Data Source=localhost";
inOffice = gcnew Dictionary<String^, bool>;
this->Load += gcnew EventHandler(this, &Employees::Form1_Load);
}
private:
void Form1_Load(System::Object^ /*sender*/, System::EventArgs^ /*e*/)
{
try
{
SetUpForm();
SetUpDataGridView1();
SetUpDataGridView2();
}
catch (SqlException^)
{
MessageBox::Show("The connection string <"
+ connectionString
+ "> failed to connect. Modify it "
+ "to connect to a Northwind database accessible to "
+ "your system.",
"ERROR", MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
Application::Exit();
}
}
private:
void SetUpForm()
{
Size = System::Drawing::Size(800, 600);
FlowLayoutPanel^ flowLayout = gcnew FlowLayoutPanel();
flowLayout->FlowDirection = FlowDirection::TopDown;
flowLayout->Dock = DockStyle::Fill;
Controls->Add(flowLayout);
flowLayout->Controls->Add(DataGridView1);
flowLayout->Controls->Add(DataGridView2);
}
private:
void SetUpDataGridView2()
{
DataGridView2->Dock = DockStyle::Bottom;
DataGridView2->TopLeftHeaderCell->Value = "Sales Details";
DataGridView2->RowHeadersWidthSizeMode =
DataGridViewRowHeadersWidthSizeMode::AutoSizeToAllHeaders;
}
private:
void SetUpDataGridView1()
{
//DataGridView1.DataError += new
// DataGridViewDataErrorEventHandler(DataGridView1_DataError);
DataGridView1->CellContentClick += gcnew
DataGridViewCellEventHandler(this, &Employees::DataGridView1_CellContentClick);
DataGridView1->CellValuePushed += gcnew
DataGridViewCellValueEventHandler(this, &Employees::DataGridView1_CellValuePushed);
DataGridView1->CellValueNeeded += gcnew
DataGridViewCellValueEventHandler(this, &Employees::DataGridView1_CellValueNeeded);
// Virtual mode is turned on so that the
// unbound DataGridViewCheckBoxColumn will
// keep its state when the bound columns are
// sorted.
DataGridView1->VirtualMode = true;
DataGridView1->AutoSize = true;
DataGridView1->DataSource = Populate("SELECT * FROM Employees");
DataGridView1->TopLeftHeaderCell->Value = "Employees";
DataGridView1->RowHeadersWidthSizeMode =
DataGridViewRowHeadersWidthSizeMode::AutoSizeToAllHeaders;
DataGridView1->ColumnHeadersHeightSizeMode =
DataGridViewColumnHeadersHeightSizeMode::AutoSize;
DataGridView1->AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode::AllCells;
DataGridView1->AllowUserToAddRows = false;
DataGridView1->AllowUserToDeleteRows = false;
// The below autogenerated column is removed so
// a DataGridViewComboboxColumn could be used instead.
DataGridView1->Columns->Remove(ColumnName::TitleOfCourtesy.ToString());
DataGridView1->Columns->Remove(ColumnName::ReportsTo.ToString());
AddLinkColumn();
AddComboBoxColumns();
AddButtonColumn();
AddOutOfOfficeColumn();
}
private:
void AddComboBoxColumns()
{
DataGridViewComboBoxColumn^ comboboxColumn;
comboboxColumn = CreateComboBoxColumn();
SetAlternateChoicesUsingDataSource(comboboxColumn);
comboboxColumn->HeaderText = "TitleOfCourtesy (via DataSource property)";
DataGridView1->Columns->Insert(0, comboboxColumn);
comboboxColumn = CreateComboBoxColumn();
SetAlternateChoicesUsingItems(comboboxColumn);
comboboxColumn->HeaderText = "TitleOfCourtesy (via Items property)";
// Tack this example column onto the end.
DataGridView1->Columns->Add(comboboxColumn);
}
private:
void AddLinkColumn()
{
DataGridViewLinkColumn^ links = gcnew DataGridViewLinkColumn();
links->UseColumnTextForLinkValue = true;
links->HeaderText = ColumnName::ReportsTo.ToString();
links->DataPropertyName = ColumnName::ReportsTo.ToString();
links->ActiveLinkColor = Color::White;
links->LinkBehavior = LinkBehavior::SystemDefault;
links->LinkColor = Color::Blue;
links->TrackVisitedState = true;
links->VisitedLinkColor = Color::YellowGreen;
DataGridView1->Columns->Add(links);
}
private:
void SetAlternateChoicesUsingItems(
DataGridViewComboBoxColumn^ comboboxColumn)
{
comboboxColumn->Items->AddRange("Mr.", "Ms.", "Mrs.", "Dr.");
}
private:
DataGridViewComboBoxColumn^ CreateComboBoxColumn()
{
DataGridViewComboBoxColumn^ column =
gcnew DataGridViewComboBoxColumn();
{
column->DataPropertyName = ColumnName::TitleOfCourtesy.ToString();
column->HeaderText = ColumnName::TitleOfCourtesy.ToString();
column->DropDownWidth = 160;
column->Width = 90;
column->MaxDropDownItems = 3;
column->FlatStyle = FlatStyle::Flat;
}
return column;
}
private:
void SetAlternateChoicesUsingDataSource(DataGridViewComboBoxColumn^ comboboxColumn)
{
{
comboboxColumn->DataSource = RetrieveAlternativeTitles();
comboboxColumn->ValueMember = ColumnName::TitleOfCourtesy.ToString();
comboboxColumn->DisplayMember = comboboxColumn->ValueMember;
}
}
private:
DataTable^ RetrieveAlternativeTitles()
{
return Populate("SELECT distinct TitleOfCourtesy FROM Employees");
}
String^ connectionString;
private:
DataTable^ Populate(String^ sqlCommand)
{
SqlConnection^ northwindConnection = gcnew SqlConnection(connectionString);
northwindConnection->Open();
SqlCommand^ command = gcnew SqlCommand(sqlCommand, northwindConnection);
SqlDataAdapter^ adapter = gcnew SqlDataAdapter();
adapter->SelectCommand = command;
DataTable^ table = gcnew DataTable();
adapter->Fill(table);
return table;
}
// Using an enum provides some abstraction between column index
// and column name along with compile time checking, and gives
// a handy place to store the column names.
enum class ColumnName
{
EmployeeID,
LastName,
FirstName,
Title,
TitleOfCourtesy,
BirthDate,
HireDate,
Address,
City,
Region,
PostalCode,
Country,
HomePhone,
Extension,
Photo,
Notes,
ReportsTo,
PhotoPath,
OutOfOffice
};
private:
void AddButtonColumn()
{
DataGridViewButtonColumn^ buttons = gcnew DataGridViewButtonColumn();
{
buttons->HeaderText = "Sales";
buttons->Text = "Sales";
buttons->UseColumnTextForButtonValue = true;
buttons->AutoSizeMode =
DataGridViewAutoSizeColumnMode::AllCells;
buttons->FlatStyle = FlatStyle::Standard;
buttons->CellTemplate->Style->BackColor = Color::Honeydew;
buttons->DisplayIndex = 0;
}
DataGridView1->Columns->Add(buttons);
}
private:
void AddOutOfOfficeColumn()
{
DataGridViewCheckBoxColumn^ column = gcnew DataGridViewCheckBoxColumn();
{
column->HeaderText = ColumnName::OutOfOffice.ToString();
column->Name = ColumnName::OutOfOffice.ToString();
column->AutoSizeMode =
DataGridViewAutoSizeColumnMode::DisplayedCells;
column->FlatStyle = FlatStyle::Standard;
column->ThreeState = true;
column->CellTemplate = gcnew DataGridViewCheckBoxCell();
column->CellTemplate->Style->BackColor = Color::Beige;
}
DataGridView1->Columns->Insert(0, column);
}
private:
void PopulateSales(DataGridViewCellEventArgs^ buttonClick)
{
String^ employeeID = DataGridView1->Rows[buttonClick->RowIndex]
->Cells[ColumnName::EmployeeID.ToString()]->Value->ToString();
DataGridView2->DataSource = Populate("SELECT * FROM Orders WHERE EmployeeID = " + employeeID);
}
#pragma region "SQL Error handling"
private:
void DataGridView1_DataError(Object^ sender, DataGridViewDataErrorEventArgs^ anError)
{
MessageBox::Show("Error happened " + anError->Context.ToString());
if (anError->Context == DataGridViewDataErrorContexts::Commit)
{
MessageBox::Show("Commit error");
}
if (anError->Context == DataGridViewDataErrorContexts::CurrentCellChange)
{
MessageBox::Show("Cell change");
}
if (anError->Context == DataGridViewDataErrorContexts::Parsing)
{
MessageBox::Show("parsing error");
}
if (anError->Context == DataGridViewDataErrorContexts::LeaveControl)
{
MessageBox::Show("leave control error");
}
if (dynamic_cast<ConstraintException^>(anError->Exception) != nullptr)
{
DataGridView^ view = (DataGridView^)sender;
view->Rows[anError->RowIndex]->ErrorText = "an error";
view->Rows[anError->RowIndex]->Cells[anError->ColumnIndex]->ErrorText = "an error";
anError->ThrowException = false;
}
}
#pragma endregion
private:
void DataGridView1_CellContentClick(Object^ /*sender*/, DataGridViewCellEventArgs^ e)
{
if (IsANonHeaderLinkCell(e))
{
MoveToLinked(e);
}
else if (IsANonHeaderButtonCell(e))
{
PopulateSales(e);
}
}
private:
void MoveToLinked(DataGridViewCellEventArgs^ e)
{
String^ employeeId;
Object^ value = DataGridView1->Rows[e->RowIndex]->Cells[e->ColumnIndex]->Value;
if (dynamic_cast<DBNull^>(value) != nullptr) { return; }
employeeId = value->ToString();
DataGridViewCell^ boss = RetrieveSuperiorsLastNameCell(employeeId);
if (boss != nullptr)
{
DataGridView1->CurrentCell = boss;
}
}
private:
bool IsANonHeaderLinkCell(DataGridViewCellEventArgs^ cellEvent)
{
if (dynamic_cast<DataGridViewLinkColumn^>(DataGridView1->Columns[cellEvent->ColumnIndex]) != nullptr
&&
cellEvent->RowIndex != -1)
{ return true; }
else { return false; }
}
private:
bool IsANonHeaderButtonCell(DataGridViewCellEventArgs^ cellEvent)
{
if (dynamic_cast<DataGridViewButtonColumn^>(DataGridView1->Columns[cellEvent->ColumnIndex]) != nullptr
&&
cellEvent->RowIndex != -1)
{ return true; }
else { return (false); }
}
private:
DataGridViewCell^ RetrieveSuperiorsLastNameCell(String^ employeeId)
{
for each (DataGridViewRow^ row in DataGridView1->Rows)
{
if (row->IsNewRow) { return nullptr; }
if (row->Cells[ColumnName::EmployeeID.ToString()]->Value->ToString()->Equals(employeeId))
{
return row->Cells[ColumnName::LastName.ToString()];
}
}
return nullptr;
}
#pragma region "checkbox state"
private:
void DataGridView1_CellValuePushed(Object^ sender,
DataGridViewCellValueEventArgs^ e)
{
if (IsCheckBoxColumn(e->ColumnIndex))
{
String^ employeeId = GetKey(e);
if (!inOffice->ContainsKey(employeeId))
{
inOffice->Add(employeeId, (Boolean)e->Value);
}
else
{
inOffice[employeeId] = (Boolean)e->Value;
}
}
}
private:
String^ GetKey(DataGridViewCellValueEventArgs^ cell)
{
return DataGridView1->Rows[cell->RowIndex]->
Cells[ColumnName::EmployeeID.ToString()]->Value->ToString();
}
private:
void DataGridView1_CellValueNeeded(Object^ sender,
DataGridViewCellValueEventArgs^ e)
{
if (IsCheckBoxColumn(e->ColumnIndex))
{
String^ employeeId = GetKey(e);
if (!inOffice->ContainsKey(employeeId))
{
bool defaultValue = false;
inOffice->Add(employeeId, defaultValue);
}
e->Value = inOffice[employeeId];
}
}
private:
bool IsCheckBoxColumn(int columnIndex)
{
DataGridViewColumn^ outOfOfficeColumn =
DataGridView1->Columns[ColumnName::OutOfOffice.ToString()];
return (DataGridView1->Columns[columnIndex] == outOfOfficeColumn);
}
#pragma endregion
};
int main()
{
Employees::Main();
}
using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
using System.Collections.Generic;
using System.Drawing;
public class Employees : Form
{
private DataGridView DataGridView1 = new DataGridView();
private DataGridView DataGridView2 = new DataGridView();
[STAThread]
public static void Main()
{
try
{
Application.EnableVisualStyles();
Application.Run(new Employees());
}
catch (Exception e)
{
MessageBox.Show(e.Message + e.StackTrace);
}
}
public Employees()
{
this.Load += new EventHandler(Form1_Load);
}
private void Form1_Load(System.Object sender, System.EventArgs e)
{
try
{
SetUpForm();
SetUpDataGridView1();
SetUpDataGridView2();
}
catch (SqlException)
{
MessageBox.Show("The connection string <"
+ connectionString
+ "> failed to connect. Modify it "
+ "to connect to a Northwind database accessible to "
+ "your system.",
"ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
Application.Exit();
}
}
private void SetUpForm()
{
Size = new Size(800, 600);
FlowLayoutPanel flowLayout = new FlowLayoutPanel();
flowLayout.FlowDirection = FlowDirection.TopDown;
flowLayout.Dock = DockStyle.Fill;
Controls.Add(flowLayout);
Text = "DataGridView columns demo";
flowLayout.Controls.Add(DataGridView1);
flowLayout.Controls.Add(DataGridView2);
}
private void SetUpDataGridView2()
{
DataGridView2.Dock = DockStyle.Bottom;
DataGridView2.TopLeftHeaderCell.Value = "Sales Details";
DataGridView2.RowHeadersWidthSizeMode =
DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
}
private void SetUpDataGridView1()
{
DataGridView1.DataError += new
DataGridViewDataErrorEventHandler(DataGridView1_DataError);
DataGridView1.CellContentClick += new
DataGridViewCellEventHandler(DataGridView1_CellContentClick);
DataGridView1.CellValuePushed += new
DataGridViewCellValueEventHandler(DataGridView1_CellValuePushed);
DataGridView1.CellValueNeeded += new
DataGridViewCellValueEventHandler(DataGridView1_CellValueNeeded);
// Virtual mode is turned on so that the
// unbound DataGridViewCheckBoxColumn will
// keep its state when the bound columns are
// sorted.
DataGridView1.VirtualMode = true;
DataGridView1.AutoSize = true;
DataGridView1.DataSource = Populate("SELECT * FROM Employees");
DataGridView1.TopLeftHeaderCell.Value = "Employees";
DataGridView1.RowHeadersWidthSizeMode =
DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
DataGridView1.ColumnHeadersHeightSizeMode =
DataGridViewColumnHeadersHeightSizeMode.AutoSize;
DataGridView1.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.AllCells;
DataGridView1.AllowUserToAddRows = false;
DataGridView1.AllowUserToDeleteRows = false;
// The below autogenerated column is removed so
// a DataGridViewComboboxColumn could be used instead.
DataGridView1.Columns.Remove(ColumnName.TitleOfCourtesy.ToString());
DataGridView1.Columns.Remove(ColumnName.ReportsTo.ToString());
AddLinkColumn();
AddComboBoxColumns();
AddButtonColumn();
AddOutOfOfficeColumn();
}
private void AddComboBoxColumns()
{
DataGridViewComboBoxColumn comboboxColumn;
comboboxColumn = CreateComboBoxColumn();
SetAlternateChoicesUsingDataSource(comboboxColumn);
comboboxColumn.HeaderText = "TitleOfCourtesy (via DataSource property)";
DataGridView1.Columns.Insert(0, comboboxColumn);
comboboxColumn = CreateComboBoxColumn();
SetAlternateChoicesUsingItems(comboboxColumn);
comboboxColumn.HeaderText = "TitleOfCourtesy (via Items property)";
// Tack this example column onto the end.
DataGridView1.Columns.Add(comboboxColumn);
}
private void AddLinkColumn()
{
DataGridViewLinkColumn links = new DataGridViewLinkColumn();
links.UseColumnTextForLinkValue = true;
links.HeaderText = ColumnName.ReportsTo.ToString();
links.DataPropertyName = ColumnName.ReportsTo.ToString();
links.ActiveLinkColor = Color.White;
links.LinkBehavior = LinkBehavior.SystemDefault;
links.LinkColor = Color.Blue;
links.TrackVisitedState = true;
links.VisitedLinkColor = Color.YellowGreen;
DataGridView1.Columns.Add(links);
}
private static void SetAlternateChoicesUsingItems(
DataGridViewComboBoxColumn comboboxColumn)
{
comboboxColumn.Items.AddRange("Mr.", "Ms.", "Mrs.", "Dr.");
}
private DataGridViewComboBoxColumn CreateComboBoxColumn()
{
DataGridViewComboBoxColumn column =
new DataGridViewComboBoxColumn();
{
column.DataPropertyName = ColumnName.TitleOfCourtesy.ToString();
column.HeaderText = ColumnName.TitleOfCourtesy.ToString();
column.DropDownWidth = 160;
column.Width = 90;
column.MaxDropDownItems = 3;
column.FlatStyle = FlatStyle.Flat;
}
return column;
}
private void SetAlternateChoicesUsingDataSource(DataGridViewComboBoxColumn comboboxColumn)
{
{
comboboxColumn.DataSource = RetrieveAlternativeTitles();
comboboxColumn.ValueMember = ColumnName.TitleOfCourtesy.ToString();
comboboxColumn.DisplayMember = comboboxColumn.ValueMember;
}
}
private DataTable RetrieveAlternativeTitles()
{
return Populate("SELECT distinct TitleOfCourtesy FROM Employees");
}
string connectionString =
"Integrated Security=SSPI;Persist Security Info=False;" +
"Initial Catalog=Northwind;Data Source=localhost";
private DataTable Populate(string sqlCommand)
{
SqlConnection northwindConnection = new SqlConnection(connectionString);
northwindConnection.Open();
SqlCommand command = new SqlCommand(sqlCommand, northwindConnection);
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = command;
DataTable table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
adapter.Fill(table);
return table;
}
// Using an enum provides some abstraction between column index
// and column name along with compile time checking, and gives
// a handy place to store the column names.
enum ColumnName
{
EmployeeId,
LastName,
FirstName,
Title,
TitleOfCourtesy,
BirthDate,
HireDate,
Address,
City,
Region,
PostalCode,
Country,
HomePhone,
Extension,
Photo,
Notes,
ReportsTo,
PhotoPath,
OutOfOffice
};
private void AddButtonColumn()
{
DataGridViewButtonColumn buttons = new DataGridViewButtonColumn();
{
buttons.HeaderText = "Sales";
buttons.Text = "Sales";
buttons.UseColumnTextForButtonValue = true;
buttons.AutoSizeMode =
DataGridViewAutoSizeColumnMode.AllCells;
buttons.FlatStyle = FlatStyle.Standard;
buttons.CellTemplate.Style.BackColor = Color.Honeydew;
buttons.DisplayIndex = 0;
}
DataGridView1.Columns.Add(buttons);
}
private void AddOutOfOfficeColumn()
{
DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn();
{
column.HeaderText = ColumnName.OutOfOffice.ToString();
column.Name = ColumnName.OutOfOffice.ToString();
column.AutoSizeMode =
DataGridViewAutoSizeColumnMode.DisplayedCells;
column.FlatStyle = FlatStyle.Standard;
column.ThreeState = true;
column.CellTemplate = new DataGridViewCheckBoxCell();
column.CellTemplate.Style.BackColor = Color.Beige;
}
DataGridView1.Columns.Insert(0, column);
}
private void PopulateSales(DataGridViewCellEventArgs buttonClick)
{
string employeeId = DataGridView1.Rows[buttonClick.RowIndex]
.Cells[ColumnName.EmployeeId.ToString()].Value.ToString();
DataGridView2.DataSource = Populate("SELECT * FROM Orders WHERE EmployeeId = " + employeeId);
}
#region "SQL Error handling"
private void DataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs anError)
{
MessageBox.Show("Error happened " + anError.Context.ToString());
if (anError.Context == DataGridViewDataErrorContexts.Commit)
{
MessageBox.Show("Commit error");
}
if (anError.Context == DataGridViewDataErrorContexts.CurrentCellChange)
{
MessageBox.Show("Cell change");
}
if (anError.Context == DataGridViewDataErrorContexts.Parsing)
{
MessageBox.Show("parsing error");
}
if (anError.Context == DataGridViewDataErrorContexts.LeaveControl)
{
MessageBox.Show("leave control error");
}
if ((anError.Exception) is ConstraintException)
{
DataGridView view = (DataGridView)sender;
view.Rows[anError.RowIndex].ErrorText = "an error";
view.Rows[anError.RowIndex].Cells[anError.ColumnIndex].ErrorText = "an error";
anError.ThrowException = false;
}
}
#endregion
private void DataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (IsANonHeaderLinkCell(e))
{
MoveToLinked(e);
}
else if (IsANonHeaderButtonCell(e))
{
PopulateSales(e);
}
}
private void MoveToLinked(DataGridViewCellEventArgs e)
{
string employeeId;
object value = DataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
if (value is DBNull) { return; }
employeeId = value.ToString();
DataGridViewCell boss = RetrieveSuperiorsLastNameCell(employeeId);
if (boss != null)
{
DataGridView1.CurrentCell = boss;
}
}
private bool IsANonHeaderLinkCell(DataGridViewCellEventArgs cellEvent)
{
if (DataGridView1.Columns[cellEvent.ColumnIndex] is
DataGridViewLinkColumn &&
cellEvent.RowIndex != -1)
{ return true; }
else { return false; }
}
private bool IsANonHeaderButtonCell(DataGridViewCellEventArgs cellEvent)
{
if (DataGridView1.Columns[cellEvent.ColumnIndex] is
DataGridViewButtonColumn &&
cellEvent.RowIndex != -1)
{ return true; }
else { return (false); }
}
private DataGridViewCell RetrieveSuperiorsLastNameCell(string employeeId)
{
foreach (DataGridViewRow row in DataGridView1.Rows)
{
if (row.IsNewRow) { return null; }
if (row.Cells[ColumnName.EmployeeId.ToString()].Value.ToString().Equals(employeeId))
{
return row.Cells[ColumnName.LastName.ToString()];
}
}
return null;
}
#region "checkbox state"
Dictionary<string, bool> inOffice = new Dictionary<string, bool>();
private void DataGridView1_CellValuePushed(object sender,
DataGridViewCellValueEventArgs e)
{
if (IsCheckBoxColumn(e.ColumnIndex))
{
string employeeId = GetKey(e);
if (!inOffice.ContainsKey(employeeId))
{
inOffice.Add(employeeId, (Boolean)e.Value);
}
else
{
inOffice[employeeId] = (Boolean)e.Value;
}
}
}
private string GetKey(DataGridViewCellValueEventArgs cell)
{
return DataGridView1.Rows[cell.RowIndex].
Cells[ColumnName.EmployeeId.ToString()].Value.ToString();
}
private void DataGridView1_CellValueNeeded(object sender,
DataGridViewCellValueEventArgs e)
{
if (IsCheckBoxColumn(e.ColumnIndex))
{
string employeeId = GetKey(e);
if (!inOffice.ContainsKey(employeeId))
{
bool defaultValue = false;
inOffice.Add(employeeId, defaultValue);
}
e.Value = inOffice[employeeId];
}
}
private bool IsCheckBoxColumn(int columnIndex)
{
DataGridViewColumn outOfOfficeColumn =
DataGridView1.Columns[ColumnName.OutOfOffice.ToString()];
return (DataGridView1.Columns[columnIndex] == outOfOfficeColumn);
}
#endregion
}
Imports System.Data
Imports System.Data.SqlClient
Imports System.Windows.Forms
Imports System.Collections.Generic
Imports System.Drawing
Public Class Employees
Inherits System.Windows.Forms.Form
Private WithEvents DataGridView1 As New DataGridView
Private WithEvents DataGridView2 As New DataGridView
<STAThreadAttribute()> _
Public Shared Sub Main()
Try
Application.EnableVisualStyles()
Application.Run(New Employees())
Catch e As Exception
MessageBox.Show(e.Message & e.StackTrace)
End Try
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Try
SetUpForm()
SetUpDataGridView1()
SetUpDataGridView2()
Catch ex As SqlException
MessageBox.Show("The connection string <" _
& connectionString _
& "> failed to connect. Modify it to connect to " _
& "a Northwind database accessible to your system.", _
"ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Application.Exit()
End Try
End Sub
Private Sub SetUpForm()
Size = New Size(800, 600)
Dim flowLayout As New FlowLayoutPanel()
flowLayout.FlowDirection = FlowDirection.TopDown
flowLayout.Dock = DockStyle.Fill
Controls.Add(flowLayout)
Text = "DataGridView columns demo"
flowLayout.Controls.Add(DataGridView1)
flowLayout.Controls.Add(DataGridView2)
End Sub
Private Sub SetUpDataGridView2()
DataGridView2.Dock = DockStyle.Bottom
DataGridView2.TopLeftHeaderCell.Value = "Sales Details"
DataGridView2.RowHeadersWidthSizeMode = _
DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders
End Sub
Private Sub SetUpDataGridView1()
' Virtual mode is turned on so that the
' unbound DataGridViewCheckBoxColumn will
' keep its state when the bound columns are
' sorted.
DataGridView1.VirtualMode = True
DataGridView1.AutoSize = True
DataGridView1.DataSource = _
Populate("SELECT * FROM Employees")
DataGridView1.TopLeftHeaderCell.Value = "Employees"
DataGridView1.RowHeadersWidthSizeMode = _
DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders
DataGridView1.ColumnHeadersHeightSizeMode = _
DataGridViewColumnHeadersHeightSizeMode.AutoSize
DataGridView1.AutoSizeColumnsMode = _
DataGridViewAutoSizeColumnsMode.AllCells
DataGridView1.AllowUserToAddRows = False
DataGridView1.AllowUserToDeleteRows = False
' The below autogenerated column is removed so
' a DataGridViewComboboxColumn could be used instead.
DataGridView1.Columns.Remove( _
ColumnName.TitleOfCourtesy.ToString())
DataGridView1.Columns.Remove(ColumnName.ReportsTo.ToString())
AddLinkColumn()
AddComboBoxColumns()
AddButtonColumn()
AddOutOfOfficeColumn()
End Sub
Private Sub AddComboBoxColumns()
Dim comboboxColumn As DataGridViewComboBoxColumn
comboboxColumn = CreateComboBoxColumn()
SetAlternateChoicesUsingDataSource(comboboxColumn)
comboboxColumn.HeaderText = _
"TitleOfCourtesy (via DataSource property)"
DataGridView1.Columns.Insert(0, comboboxColumn)
comboboxColumn = CreateComboBoxColumn()
SetAlternateChoicesUsingItems(comboboxColumn)
comboboxColumn.HeaderText = _
"TitleOfCourtesy (via Items property)"
' Tack this example column onto the end.
DataGridView1.Columns.Add(comboboxColumn)
End Sub
Private Sub AddLinkColumn()
Dim links As New DataGridViewLinkColumn()
With links
.UseColumnTextForLinkValue = True
.HeaderText = ColumnName.ReportsTo.ToString()
.DataPropertyName = ColumnName.ReportsTo.ToString()
.ActiveLinkColor = Color.White
.LinkBehavior = LinkBehavior.SystemDefault
.LinkColor = Color.Blue
.TrackVisitedState = True
.VisitedLinkColor = Color.YellowGreen
End With
DataGridView1.Columns.Add(links)
End Sub
Private Shared Sub SetAlternateChoicesUsingItems( _
ByVal comboboxColumn As DataGridViewComboBoxColumn)
comboboxColumn.Items.AddRange("Mr.", "Ms.", "Mrs.", "Dr.")
End Sub
Private Function CreateComboBoxColumn() _
As DataGridViewComboBoxColumn
Dim column As New DataGridViewComboBoxColumn()
With column
.DataPropertyName = ColumnName.TitleOfCourtesy.ToString()
.HeaderText = ColumnName.TitleOfCourtesy.ToString()
.DropDownWidth = 160
.Width = 90
.MaxDropDownItems = 3
.FlatStyle = FlatStyle.Flat
End With
Return column
End Function
Private Sub SetAlternateChoicesUsingDataSource( _
ByVal comboboxColumn As DataGridViewComboBoxColumn)
With comboboxColumn
.DataSource = RetrieveAlternativeTitles()
.ValueMember = ColumnName.TitleOfCourtesy.ToString()
.DisplayMember = .ValueMember
End With
End Sub
Private Function RetrieveAlternativeTitles() As DataTable
Return Populate( _
"SELECT distinct TitleOfCourtesy FROM Employees")
End Function
Private connectionString As String = _
"Integrated Security=SSPI;Persist Security Info=False;" _
& "Initial Catalog=Northwind;Data Source=localhost"
Private Function Populate(ByVal sqlCommand As String) As DataTable
Dim northwindConnection As New SqlConnection(connectionString)
northwindConnection.Open()
Dim command As New SqlCommand(sqlCommand, _
northwindConnection)
Dim adapter As New SqlDataAdapter()
adapter.SelectCommand = command
Dim table As New DataTable()
table.Locale = System.Globalization.CultureInfo.InvariantCulture
adapter.Fill(table)
Return table
End Function
' Using an enum provides some abstraction between column index
' and column name along with compile time checking, and gives
' a handy place to store the column names.
Enum ColumnName
EmployeeId
LastName
FirstName
Title
TitleOfCourtesy
BirthDate
HireDate
Address
City
Region
PostalCode
Country
HomePhone
Extension
Photo
Notes
ReportsTo
PhotoPath
OutOfOffice
End Enum
Private Sub AddButtonColumn()
Dim buttons As New DataGridViewButtonColumn()
With buttons
.HeaderText = "Sales"
.Text = "Sales"
.UseColumnTextForButtonValue = True
.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells
.FlatStyle = FlatStyle.Standard
.CellTemplate.Style.BackColor = Color.Honeydew
.DisplayIndex = 0
End With
DataGridView1.Columns.Add(buttons)
End Sub
Private Sub AddOutOfOfficeColumn()
Dim column As New DataGridViewCheckBoxColumn()
With column
.HeaderText = ColumnName.OutOfOffice.ToString()
.Name = ColumnName.OutOfOffice.ToString()
.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells
.FlatStyle = FlatStyle.Standard
.CellTemplate = New DataGridViewCheckBoxCell()
.CellTemplate.Style.BackColor = Color.Beige
End With
DataGridView1.Columns.Insert(0, column)
End Sub
Private Sub PopulateSales( _
ByVal buttonClick As DataGridViewCellEventArgs)
Dim employeeId As String = _
DataGridView1.Rows(buttonClick.RowIndex). _
Cells(ColumnName.EmployeeId.ToString()).Value().ToString()
DataGridView2.DataSource = Populate( _
"SELECT * FROM Orders WHERE EmployeeId = " & employeeId)
End Sub
#Region "SQL Error handling"
Private Sub DataGridView1_DataError(ByVal sender As Object, _
ByVal e As DataGridViewDataErrorEventArgs) _
Handles DataGridView1.DataError
MessageBox.Show("Error happened " _
& e.Context.ToString())
If (e.Context = DataGridViewDataErrorContexts.Commit) _
Then
MessageBox.Show("Commit error")
End If
If (e.Context = DataGridViewDataErrorContexts _
.CurrentCellChange) Then
MessageBox.Show("Cell change")
End If
If (e.Context = DataGridViewDataErrorContexts.Parsing) _
Then
MessageBox.Show("parsing error")
End If
If (e.Context = _
DataGridViewDataErrorContexts.LeaveControl) Then
MessageBox.Show("leave control error")
End If
If (TypeOf (e.Exception) Is ConstraintException) Then
Dim view As DataGridView = CType(sender, DataGridView)
view.Rows(e.RowIndex).ErrorText = "an error"
view.Rows(e.RowIndex).Cells(e.ColumnIndex) _
.ErrorText = "an error"
e.ThrowException = False
End If
End Sub
#End Region
Private Sub DataGridView1_CellContentClick(ByVal sender As Object, _
ByVal e As DataGridViewCellEventArgs) _
Handles DataGridView1.CellContentClick
If IsANonHeaderLinkCell(e) Then
MoveToLinked(e)
ElseIf IsANonHeaderButtonCell(e) Then
PopulateSales(e)
End If
End Sub
Private Sub MoveToLinked(ByVal e As DataGridViewCellEventArgs)
Dim employeeId As String
Dim value As Object = DataGridView1.Rows(e.RowIndex). _
Cells(e.ColumnIndex).Value
If value.GetType Is GetType(DBNull) Then Return
employeeId = CType(value, String)
Dim boss As DataGridViewCell = _
RetrieveSuperiorsLastNameCell(employeeId)
If boss IsNot Nothing Then
DataGridView1.CurrentCell = boss
End If
End Sub
Private Function IsANonHeaderLinkCell(ByVal cellEvent As _
DataGridViewCellEventArgs) As Boolean
If TypeOf DataGridView1.Columns(cellEvent.ColumnIndex) _
Is DataGridViewLinkColumn _
AndAlso Not cellEvent.RowIndex = -1 Then _
Return True Else Return False
End Function
Private Function IsANonHeaderButtonCell(ByVal cellEvent As _
DataGridViewCellEventArgs) As Boolean
If TypeOf DataGridView1.Columns(cellEvent.ColumnIndex) _
Is DataGridViewButtonColumn _
AndAlso Not cellEvent.RowIndex = -1 Then _
Return True Else Return (False)
End Function
Private Function RetrieveSuperiorsLastNameCell( _
ByVal employeeId As String) As DataGridViewCell
For Each row As DataGridViewRow In DataGridView1.Rows
If row.IsNewRow Then Return Nothing
If row.Cells(ColumnName.EmployeeId.ToString()). _
Value.ToString().Equals(employeeId) Then
Return row.Cells(ColumnName.LastName.ToString())
End If
Next
Return Nothing
End Function
#Region "checkbox state"
Dim inOffice As New Dictionary(Of String, Boolean)
Private Sub DataGridView1_CellValuePushed(ByVal sender As Object, _
ByVal e As DataGridViewCellValueEventArgs) _
Handles DataGridView1.CellValuePushed
If IsCheckBoxColumn(e.ColumnIndex) Then
Dim employeeId As String = GetKey(e)
If Not inOffice.ContainsKey(employeeId) Then
inOffice.Add(employeeId, CType(e.Value, Boolean))
Else
inOffice.Item(employeeId) = CType(e.Value, Boolean)
End If
End If
End Sub
Private Function GetKey(ByVal cell As DataGridViewCellValueEventArgs) As String
Return DataGridView1.Rows(cell.RowIndex).Cells( _
ColumnName.EmployeeId.ToString()).Value().ToString()
End Function
Private Sub DataGridView1_CellValueNeeded(ByVal sender As Object, _
ByVal e As DataGridViewCellValueEventArgs) _
Handles DataGridView1.CellValueNeeded
If IsCheckBoxColumn(e.ColumnIndex) Then
Dim employeeId As String = GetKey(e)
If Not inOffice.ContainsKey(employeeId) Then
Dim defaultValue As Boolean = False
inOffice.Add(employeeId, defaultValue)
End If
e.Value = inOffice.Item(employeeId)
End If
End Sub
Private Function IsCheckBoxColumn(ByVal columnIndex As Integer) As Boolean
Dim outOfOfficeColumn As DataGridViewColumn = _
DataGridView1.Columns(ColumnName.OutOfOffice.ToString())
Return (DataGridView1.Columns(columnIndex) Is outOfOfficeColumn)
End Function
#End Region
End Class
Commenti
La DataGridViewComboBoxColumn classe è un tipo specializzato di DataGridViewColumn usato per ospitare logicamente le celle che consentono agli utenti di selezionare i valori da un elenco di scelte. A DataGridViewComboBoxColumn un oggetto è associato DataGridViewComboBoxCell in ogni DataGridViewRow oggetto che lo interseca.
È possibile popolare manualmente le celle impostandone Value le proprietà. In alternativa, è possibile associare la colonna all'origine dati indicata dalla DataGridView.DataSource proprietà . DataGridView Se è associato a una tabella di database, impostare la proprietà column DataPropertyName sul nome di una colonna nella tabella. Se l'oggetto DataGridView è associato a una raccolta di oggetti, impostare la DataPropertyName proprietà sul nome di una proprietà dell'oggetto.
È possibile popolare manualmente l'elenco a discesa delle colonne aggiungendo valori alla Items raccolta. In alternativa, è possibile associare l'elenco a discesa alla propria origine dati impostando la proprietà della colonna DataSource . Se i valori sono oggetti di una raccolta o di record in una tabella di database, è necessario impostare anche le DisplayMember proprietà e ValueMember . La DisplayMember proprietà indica quale proprietà oggetto o colonna di database fornisce i valori visualizzati nell'elenco a discesa. La ValueMember proprietà indica quale proprietà oggetto o colonna di database viene utilizzata per impostare la proprietà della cella Value .
Uno scenario tipico consiste nell'associare il DataGridView controllo a una tabella di database padre e associare l'elenco a discesa a una tabella figlio correlata. Ad esempio, è possibile associare il DataGridView controllo a una Orders tabella contenente una ProductID colonna e impostare la proprietà della colonna DataSource su una Products tabella contenente ProductID colonne e ProductName . In questo caso, impostare la proprietà column DataPropertyName su "ProductID" per popolare i relativi valori di Orders.ProductID cella dalla colonna. Tuttavia, per visualizzare i nomi dei prodotti effettivi nelle celle e nell'elenco a discesa, è necessario eseguire il mapping di questi valori alla Products tabella impostando la ValueMember proprietà su "ProductID" e la DisplayMember proprietà su "ProductName".
I valori dell'elenco a discesa (o i valori indicati dalla proprietà) devono includere i valori effettivi della ValueMember cella oppure il DataGridView controllo genererà un'eccezione.
L'impostazione delle proprietà della colonna DataSource, DisplayMembere ValueMember imposta automaticamente le proprietà corrispondenti di tutte le celle nella colonna, incluso .CellTemplate Per eseguire l'override di questi valori di proprietà per celle specifiche, impostare prima la proprietà della colonna e quindi impostare le proprietà della cella.
A differenza del controllo, l'oggetto ComboBoxDataGridViewComboBoxCell non dispone SelectedIndex di proprietà e SelectedValue . La selezione di un valore da un elenco a discesa imposta invece la proprietà della cella Value .
La modalità di ordinamento predefinita per questo tipo di colonna è NotSortable.
Note per gli eredi
Quando si deriva da DataGridViewComboBoxColumn 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 |
|---|---|
| DataGridViewComboBoxColumn() |
Inizializza una nuova istanza della DataGridViewTextBoxColumn classe sullo stato predefinito. |
Proprietà
| Nome | Descrizione |
|---|---|
| AutoComplete |
Ottiene o imposta un valore che indica se le celle nella colonna corrispondono ai caratteri immessi nella cella con una delle selezioni possibili. |
| 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 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) |
| DataSource |
Ottiene o imposta l'origine dati che popola le selezioni per le caselle combinate. |
| DefaultCellStyle |
Ottiene o imposta lo stile predefinito della cella della colonna. (Ereditato da DataGridViewColumn) |
| 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) |
| DisplayMember |
Ottiene o imposta una stringa che specifica la proprietà o la colonna da cui recuperare le stringhe da visualizzare nelle caselle combinate. |
| DisplayStyle |
Ottiene o imposta un valore che determina la modalità di visualizzazione della casella combinata quando non viene modificata. |
| DisplayStyleForCurrentCellOnly |
Ottiene o imposta un valore che indica se il valore della DisplayStyle proprietà si applica solo alla cella corrente nel DataGridView controllo quando la cella corrente si trova in questa colonna. |
| DividerWidth |
Ottiene o imposta la larghezza, espressa in pixel, del divisore di colonna. (Ereditato da DataGridViewColumn) |
| DropDownWidth |
Ottiene o imposta la larghezza degli elenchi a discesa delle caselle combinate. |
| 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 dello stile flat delle celle della 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) |
| Items |
Ottiene l'insieme di oggetti utilizzati come selezioni nelle caselle combinate. |
| MaxDropDownItems |
Ottiene o imposta il numero massimo di elementi nell'elenco a discesa delle celle della colonna. |
| 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) |
| Sorted |
Ottiene o imposta un valore che indica se gli elementi nella casella combinata sono ordinati. |
| 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) |
| ToolTipText |
Ottiene o imposta il testo utilizzato per le descrizioni comandi. (Ereditato da DataGridViewColumn) |
| ValueMember |
Ottiene o imposta una stringa che specifica la proprietà o la colonna da cui ottenere valori corrispondenti alle selezioni nell'elenco a discesa. |
| 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) |