DataGridViewComboBoxColumn Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa uma coluna de objetos DataGridViewComboBoxCell.
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.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.Drawing.ToolboxBitmap(typeof(System.Windows.Forms.DataGridViewComboBoxColumn), "DataGridViewComboBoxColumn")>]
type DataGridViewComboBoxColumn = class
inherit DataGridViewColumn
Public Class DataGridViewComboBoxColumn
Inherits DataGridViewColumn
- Herança
- Atributos
Exemplos
O exemplo de código a seguir demonstra como usar um DataGridViewComboBoxColumn para auxiliar na inserção de dados na TitleOfCourtesy
coluna.
#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
Comentários
A DataGridViewComboBoxColumn classe é um tipo especializado de DataGridViewColumn usado para hospedar logicamente células que permitem que os usuários selecionem valores em uma lista de opções. Um DataGridViewComboBoxColumn tem um associado DataGridViewComboBoxCell em cada DataGridViewRow que o cruza.
Você pode preencher as células manualmente definindo suas Value propriedades. Como alternativa, você pode associar a coluna à fonte de dados indicada pela DataGridView.DataSource propriedade . Se o DataGridView estiver associado a uma tabela de banco de dados, defina a propriedade de coluna DataPropertyName como o nome de uma coluna na tabela. Se o DataGridView estiver associado a uma coleção de objetos, defina a DataPropertyName propriedade como o nome de uma propriedade de objeto.
Você pode preencher a lista suspensa de colunas manualmente adicionando valores à Items coleção. Como alternativa, você pode associar a lista suspensa à sua própria fonte de dados definindo a propriedade de coluna DataSource . Se os valores forem objetos em uma coleção ou registros em uma tabela de banco de dados, você também deverá definir as DisplayMember propriedades e ValueMember . A DisplayMember propriedade indica qual propriedade de objeto ou coluna de banco de dados fornece os valores exibidos na lista suspensa. A ValueMember propriedade indica qual propriedade de objeto ou coluna de banco de dados é usada para definir a propriedade da célula Value .
Um cenário típico é associar o DataGridView controle a uma tabela de banco de dados pai e associar a lista suspensa a uma tabela filho relacionada. Por exemplo, você pode associar o DataGridView controle a uma Orders
tabela que contém uma ProductID
coluna e definir a propriedade de coluna DataSource como uma Products
tabela que contém ProductID
colunas e ProductName
. Nesse caso, você definiria a propriedade de coluna DataPropertyName como "ProductID" para preencher seus valores de célula da Orders.ProductID
coluna. No entanto, para exibir os nomes reais do produto nas células e na lista suspensa, você mapearia esses valores para a Products
tabela definindo a ValueMember propriedade como "ProductID" e a DisplayMember propriedade como "ProductName".
Os valores de lista suspensa (ou os valores indicados pela ValueMember propriedade) devem incluir os valores reais da célula ou o DataGridView controle gerará uma exceção.
Definir as DataSourcepropriedades , DisplayMembere ValueMember define automaticamente as propriedades correspondentes de todas as células na coluna, incluindo o CellTemplate. Para substituir esses valores de propriedade para células específicas, defina a propriedade de coluna primeiro e defina as propriedades da célula.
Ao contrário do ComboBox controle, o DataGridViewComboBoxCell não tem SelectedIndex propriedades e SelectedValue . Em vez disso, selecionar um valor em uma lista suspensa define a propriedade da célula Value .
O modo de classificação padrão para esse tipo de coluna é NotSortable.
Notas aos Herdeiros
Ao derivar de DataGridViewComboBoxColumn e adicionar novas propriedades à classe derivada, substitua o Clone() método para copiar as novas propriedades durante as operações de clonagem. Você também deve chamar o método da Clone() classe base para que as propriedades da classe base sejam copiadas para a nova célula.
Construtores
DataGridViewComboBoxColumn() |
Inicializa uma nova instância da classe DataGridViewTextBoxColumn com o estado padrão. |
Propriedades
AutoComplete |
Obtém ou define um valor que indica se as células na coluna corresponderão aos caracteres sendo inseridos na célula com uma das seleções possíveis. |
AutoSizeMode |
Obtém ou define o modo pelo qual a coluna ajusta a largura automaticamente. (Herdado de DataGridViewColumn) |
CellTemplate |
Obtém ou define o modelo usado para criar células. |
CellType |
Obtém o tipo de tempo de execução do modelo de célula. (Herdado de DataGridViewColumn) |
ContextMenuStrip |
Obtém ou define o menu de atalho da coluna. (Herdado de DataGridViewColumn) |
DataGridView |
Obtém o controle de DataGridView associado a esse elemento. (Herdado de DataGridViewElement) |
DataPropertyName |
Obtém ou define o nome da propriedade da fonte de dados ou da coluna de banco de dados à qual DataGridViewColumn está associado. (Herdado de DataGridViewColumn) |
DataSource |
Obtém ou define a fonte de dados que popula as seleções das caixas de combinação. |
DefaultCellStyle |
Obtém ou define o estilo da célula padrão da coluna. (Herdado de DataGridViewColumn) |
DefaultHeaderCellType |
Obtém ou define o tipo de tempo de execução da célula de cabeçalho padrão. (Herdado de DataGridViewBand) |
Displayed |
Obtém um valor que indica se a banda é exibida na tela no momento. (Herdado de DataGridViewBand) |
DisplayIndex |
Obtém ou define a ordem de exibição da coluna em relação às colunas exibidas no momento. (Herdado de DataGridViewColumn) |
DisplayMember |
Obtém ou define uma cadeia de caracteres que especifica a propriedade ou coluna da qual recuperar cadeias de caracteres para exibição nas caixas de combinação. |
DisplayStyle |
Obtém ou define um valor que determina o modo como a caixa de combinação é exibida quando não está sendo editada. |
DisplayStyleForCurrentCellOnly |
Obtém ou define um valor que indica se o valor da propriedade DisplayStyle se aplica somente à célula atual no controle DataGridView quando a célula atual está nesta coluna. |
DividerWidth |
Obtém ou define a largura mínima, em pixels, do divisor de coluna. (Herdado de DataGridViewColumn) |
DropDownWidth |
Obtém ou define a largura das listas suspensas das caixas de combinação. |
FillWeight |
Obtém ou define um valor que representa a largura da coluna quando ela está no modo de preenchimento em relação à largura das outras colunas de modo de preenchimento no controle. (Herdado de DataGridViewColumn) |
FlatStyle |
Obtém ou define a aparência de estilo plano das células da coluna. |
Frozen |
Obtém ou define um valor que indica se uma coluna será movida quando um usuário rolar o controle DataGridView horizontalmente. (Herdado de DataGridViewColumn) |
HasDefaultCellStyle |
Obtém um valor que indica se a propriedade DefaultCellStyle foi definida. (Herdado de DataGridViewBand) |
HeaderCell |
Obtém ou define o DataGridViewColumnHeaderCell que representa o cabeçalho da coluna. (Herdado de DataGridViewColumn) |
HeaderCellCore |
Obtém ou define a célula de cabeçalho do DataGridViewBand. (Herdado de DataGridViewBand) |
HeaderText |
Obtém ou define o texto de legenda na célula do cabeçalho da coluna. (Herdado de DataGridViewColumn) |
Index |
Obtém a posição relativa da faixa dentro do controle DataGridView. (Herdado de DataGridViewBand) |
InheritedAutoSizeMode |
Obtém o modo de redimensionamento em vigor para a coluna. (Herdado de DataGridViewColumn) |
InheritedStyle |
Obtém o estilo aplicado atualmente à coluna. (Herdado de DataGridViewColumn) |
IsDataBound |
Obtém um valor que indica se a coluna está associada a uma fonte de dados. (Herdado de DataGridViewColumn) |
IsRow |
Obtém um valor que indica se a banda representa uma linha. (Herdado de DataGridViewBand) |
Items |
Obtém a coleção de objetos usados como seleções nas caixas de combinação. |
MaxDropDownItems |
Obtém ou define o número máximo de itens na lista suspensa das células na coluna. |
MinimumWidth |
Obtém ou define a largura mínima, em pixels, da coluna. (Herdado de DataGridViewColumn) |
Name |
Obtém ou define o nome da coluna. (Herdado de DataGridViewColumn) |
ReadOnly |
Obtém ou define um valor que indica se o usuário pode editar as células da coluna. (Herdado de DataGridViewColumn) |
Resizable |
Obtém ou define um valor que indica se a coluna é redimensionável. (Herdado de DataGridViewColumn) |
Selected |
Obtém ou define um valor que indica se a banda está em um estado de interface do usuário selecionado. (Herdado de DataGridViewBand) |
Site |
Obtém ou define o site da coluna. (Herdado de DataGridViewColumn) |
Sorted |
Obtém ou define um valor que indica se os itens da caixa de combinação são classificados. |
SortMode |
Obtém ou define o modo de classificação da coluna. (Herdado de DataGridViewColumn) |
State |
Obtém o estado da UI (interface do usuário) do elemento. (Herdado de DataGridViewElement) |
Tag |
Obtém ou define o objeto que contém os dados associados à banda. (Herdado de DataGridViewBand) |
ToolTipText |
Obtém ou define o texto usado para Dicas de Ferramentas. (Herdado de DataGridViewColumn) |
ValueMember |
Obtém ou define uma cadeia de caracteres que especifica a propriedade ou a coluna da qual os valores que correspondam às seleções na lista suspensa são obtidos. |
ValueType |
Obtém ou define o tipo de dados dos valores nas células da coluna. (Herdado de DataGridViewColumn) |
Visible |
Obtém ou define um valor que indica se a coluna está visível. (Herdado de DataGridViewColumn) |
Width |
Obtém ou define a largura atual da coluna. (Herdado de DataGridViewColumn) |
Métodos
Clone() |
Cria uma cópia exata desta coluna. |
Dispose() |
Libera todos os recursos usados pelo DataGridViewBand. (Herdado de DataGridViewBand) |
Dispose(Boolean) |
Libera os recursos não gerenciados usados pelo DataGridViewBand e opcionalmente libera os recursos gerenciados. (Herdado de DataGridViewColumn) |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetPreferredWidth(DataGridViewAutoSizeColumnMode, Boolean) |
Calcula a largura ideal da coluna com base nos critérios especificados. (Herdado de DataGridViewColumn) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
OnDataGridViewChanged() |
Chamado quando a faixa está associada a um DataGridView diferente. (Herdado de DataGridViewBand) |
RaiseCellClick(DataGridViewCellEventArgs) |
Aciona o evento CellClick. (Herdado de DataGridViewElement) |
RaiseCellContentClick(DataGridViewCellEventArgs) |
Aciona o evento CellContentClick. (Herdado de DataGridViewElement) |
RaiseCellContentDoubleClick(DataGridViewCellEventArgs) |
Aciona o evento CellContentDoubleClick. (Herdado de DataGridViewElement) |
RaiseCellValueChanged(DataGridViewCellEventArgs) |
Aciona o evento CellValueChanged. (Herdado de DataGridViewElement) |
RaiseDataError(DataGridViewDataErrorEventArgs) |
Aciona o evento DataError. (Herdado de DataGridViewElement) |
RaiseMouseWheel(MouseEventArgs) |
Aciona o evento MouseWheel. (Herdado de DataGridViewElement) |
ToString() |
Obtém uma cadeia de caracteres que descreve a coluna. |
Eventos
Disposed |
Ocorre quando o DataGridViewColumn é descartado. (Herdado de DataGridViewColumn) |