DataGridViewComboBoxColumn Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje sloupec DataGridViewComboBoxCell objektů.
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
- Dědičnost
- Atributy
Příklady
Následující příklad kódu ukazuje, jak použít jako DataGridViewComboBoxColumn pomoc při zadávání dat do TitleOfCourtesy
sloupce.
#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
Poznámky
Třída DataGridViewComboBoxColumn je specializovaný typ, který se používá k logickému DataGridViewColumn hostování buněk, které uživatelům umožňují vybrat hodnoty ze seznamu voleb. A DataGridViewComboBoxColumn má přidružené DataGridViewComboBoxCell v každém DataGridViewRow , co ho protíná.
Buňky můžete naplnit ručně nastavením jejich Value vlastností. Případně můžete sloupec svázat se zdrojem dat označeným DataGridView.DataSource vlastností. DataGridView Pokud je objekt vázaný na tabulku databáze, nastavte vlastnost column DataPropertyName na název sloupce v tabulce. DataGridView Pokud je objekt vázán na kolekci objektů, nastavte DataPropertyName vlastnost na název vlastnosti objektu.
Rozevírací seznam sloupců můžete ručně naplnit přidáním hodnot do Items kolekce. Případně můžete svázat rozevírací seznam s vlastním zdrojem dat nastavením vlastnosti column DataSource . Pokud jsou hodnoty objekty v kolekci nebo záznamy v databázové tabulce, musíte také nastavit DisplayMember vlastnosti a ValueMember . Vlastnost DisplayMember určuje, která vlastnost objektu nebo sloupec databáze poskytuje hodnoty, které jsou zobrazeny v rozevíracím seznamu. Vlastnost ValueMember označuje, která vlastnost objektu nebo sloupec databáze se používá k nastavení vlastnosti buňky Value .
Jedním z typických scénářů je vytvoření vazby DataGridView ovládacího prvku na nadřazenou tabulku databáze a vytvoření vazby rozevíracího seznamu na související podřízenou tabulku. Můžete například svázat DataGridView ovládací prvek s tabulkou Orders
, která obsahuje ProductID
sloupec, a nastavit vlastnost sloupce DataSource na Products
tabulku, která obsahuje ProductID
sloupce a ProductName
. V takovém případě byste vlastnost sloupce DataPropertyName nastavili na ProductID, aby se hodnoty buněk ze Orders.ProductID
sloupce naplňovaly. Pokud ale chcete zobrazit skutečné názvy produktů v buňkách a rozevíracím seznamu, namapujte tyto hodnoty na Products
tabulku nastavením ValueMember vlastnosti na ProductID a DisplayMember vlastnost na ProductName.
Hodnoty rozevíracího seznamu (nebo hodnoty označené ValueMember vlastností) musí obsahovat skutečné hodnoty buněk, jinak DataGridView ovládací prvek vyvolá výjimku.
Nastavením vlastností sloupce DataSource, DisplayMembera ValueMember se automaticky nastaví odpovídající vlastnosti všech buněk ve sloupci, včetně CellTemplate. Pokud chcete tyto hodnoty vlastností přepsat pro konkrétní buňky, nastavte nejprve vlastnost sloupce a pak nastavte vlastnosti buňky.
ComboBox Na rozdíl od ovládacího prvku DataGridViewComboBoxCell nemá SelectedIndex vlastnosti aSelectedValue. Místo toho výběrem hodnoty z rozevíracího seznamu nastavíte vlastnost buňky Value .
Výchozí režim řazení pro tento typ sloupce je NotSortable.
Poznámky pro dědice
Když odvozujete a DataGridViewComboBoxColumn přidáte nové vlastnosti do odvozené třídy, nezapomeňte přepsat metodu Clone() kopírování nových vlastností během operací klonování. Měli byste také volat metodu základní třídy Clone() , aby vlastnosti základní třídy byly zkopírovány do nové buňky.
Konstruktory
DataGridViewComboBoxColumn() |
Inicializuje novou instanci DataGridViewTextBoxColumn třídy do výchozího stavu. |
Vlastnosti
AutoComplete |
Získá nebo nastaví hodnotu určující, zda buňky ve sloupci budou odpovídat znakům zadaným v buňce s jedním z možných výběrů. |
AutoSizeMode |
Získá nebo nastaví režim, ve kterém sloupec automaticky upraví šířku. (Zděděno od DataGridViewColumn) |
CellTemplate |
Získá nebo nastaví šablonu použitou k vytvoření buněk. |
CellType |
Získá typ za běhu šablony buňky. (Zděděno od DataGridViewColumn) |
ContextMenuStrip |
Získá nebo nastaví místní nabídku pro sloupec. (Zděděno od DataGridViewColumn) |
DataGridView |
Získá ovládací prvek DataGridView přidružený k tomuto prvku. (Zděděno od DataGridViewElement) |
DataPropertyName |
Získá nebo nastaví název vlastnosti zdroje dat nebo databázového sloupce, na DataGridViewColumn který je vázán. (Zděděno od DataGridViewColumn) |
DataSource |
Získá nebo nastaví zdroj dat, který naplní výběry polí se seznamem. |
DefaultCellStyle |
Získá nebo nastaví výchozí styl buňky sloupce. (Zděděno od DataGridViewColumn) |
DefaultHeaderCellType |
Získá nebo nastaví typ běhu výchozí buňky záhlaví. (Zděděno od DataGridViewBand) |
Displayed |
Získá hodnotu označující, zda je pásmo aktuálně zobrazeno na obrazovce. (Zděděno od DataGridViewBand) |
DisplayIndex |
Získá nebo nastaví pořadí zobrazení sloupce vzhledem k aktuálně zobrazeným sloupcům. (Zděděno od DataGridViewColumn) |
DisplayMember |
Získá nebo nastaví řetězec, který určuje vlastnost nebo sloupec, ze kterého chcete načíst řetězce pro zobrazení v polích se seznamem. |
DisplayStyle |
Získá nebo nastaví hodnotu, která určuje, jak pole se seznamem je zobrazen při úpravách. |
DisplayStyleForCurrentCellOnly |
Získá nebo nastaví hodnotu určující, zda DisplayStyle hodnota vlastnosti platí pouze pro aktuální buňku v ovládacím DataGridView prvku, když aktuální buňka je v tomto sloupci. |
DividerWidth |
Získá nebo nastaví šířku oddělovače sloupců v pixelech. (Zděděno od DataGridViewColumn) |
DropDownWidth |
Získá nebo nastaví šířku rozevíracích seznamů polí se seznamem. |
FillWeight |
Získá nebo nastaví hodnotu, která představuje šířku sloupce, když je v režimu výplně vzhledem k šířkám jiných sloupců v režimu výplně v ovládacím prvku. (Zděděno od DataGridViewColumn) |
FlatStyle |
Získá nebo nastaví vzhled plochého stylu buněk sloupce. |
Frozen |
Získá nebo nastaví hodnotu označující, zda se sloupec přesune, když uživatel posune DataGridView ovládací prvek vodorovně. (Zděděno od DataGridViewColumn) |
HasDefaultCellStyle |
Získá hodnotu označující, zda DefaultCellStyle byla nastavena vlastnost. (Zděděno od DataGridViewBand) |
HeaderCell |
Získá nebo nastaví DataGridViewColumnHeaderCell , který představuje záhlaví sloupce. (Zděděno od DataGridViewColumn) |
HeaderCellCore |
Získá nebo nastaví buňku DataGridViewBandzáhlaví . (Zděděno od DataGridViewBand) |
HeaderText |
Získá nebo nastaví popis text v buňce záhlaví sloupce. (Zděděno od DataGridViewColumn) |
Index |
Získá relativní pozici pásma v rámci DataGridView ovládacího prvku. (Zděděno od DataGridViewBand) |
InheritedAutoSizeMode |
Získá režim velikosti ve sloupci. (Zděděno od DataGridViewColumn) |
InheritedStyle |
Získá styl buňky, který se aktuálně používá ve sloupci. (Zděděno od DataGridViewColumn) |
IsDataBound |
Získá hodnotu označující, zda je sloupec vázán na zdroj dat. (Zděděno od DataGridViewColumn) |
IsRow |
Získá hodnotu označující, zda pásmo představuje řádek. (Zděděno od DataGridViewBand) |
Items |
Získá kolekci objektů používaných jako výběry v polích se seznamem. |
MaxDropDownItems |
Získá nebo nastaví maximální počet položek v rozevíracím seznamu buněk ve sloupci. |
MinimumWidth |
Získá nebo nastaví minimální šířku sloupce v pixelech. (Zděděno od DataGridViewColumn) |
Name |
Získá nebo nastaví název sloupce. (Zděděno od DataGridViewColumn) |
ReadOnly |
Získá nebo nastaví hodnotu určující, zda uživatel může upravit buňky sloupce. (Zděděno od DataGridViewColumn) |
Resizable |
Získá nebo nastaví hodnotu označující, zda je možné změnit velikost sloupce. (Zděděno od DataGridViewColumn) |
Selected |
Získá nebo nastaví hodnotu označující, zda je pásmo ve vybraném uživatelském rozhraní (UI) stavu. (Zděděno od DataGridViewBand) |
Site |
Získá nebo nastaví web sloupce. (Zděděno od DataGridViewColumn) |
Sorted |
Získá nebo nastaví hodnotu označující, zda jsou položky v poli se seznamem seřazeny. |
SortMode |
Získá nebo nastaví režim řazení pro sloupec. (Zděděno od DataGridViewColumn) |
State |
Získá stav uživatelského rozhraní (UI) elementu. (Zděděno od DataGridViewElement) |
Tag |
Získá nebo nastaví objekt, který obsahuje data k přidružení k pásu. (Zděděno od DataGridViewBand) |
ToolTipText |
Získá nebo nastaví text použitý pro popisy. (Zděděno od DataGridViewColumn) |
ValueMember |
Získá nebo nastaví řetězec, který určuje vlastnost nebo sloupec, ze kterého chcete získat hodnoty, které odpovídají výběru v rozevíracím seznamu. |
ValueType |
Získá nebo nastaví datový typ hodnot v buňkách sloupce. (Zděděno od DataGridViewColumn) |
Visible |
Získá nebo nastaví hodnotu označující, zda je sloupec viditelný. (Zděděno od DataGridViewColumn) |
Width |
Získá nebo nastaví aktuální šířku sloupce. (Zděděno od DataGridViewColumn) |
Metody
Clone() |
Vytvoří přesnou kopii tohoto sloupce. |
Dispose() |
Uvolní všechny prostředky používané nástrojem DataGridViewBand. (Zděděno od DataGridViewBand) |
Dispose(Boolean) |
Uvolní nespravované prostředky používané DataGridViewBand nástrojem a volitelně uvolní spravované prostředky. (Zděděno od DataGridViewColumn) |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetPreferredWidth(DataGridViewAutoSizeColumnMode, Boolean) |
Vypočítá ideální šířku sloupce na základě zadaných kritérií. (Zděděno od DataGridViewColumn) |
GetType() |
Získá aktuální Type instanci. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
OnDataGridViewChanged() |
Volá se, když je skupina přidružená k jinému DataGridView. (Zděděno od DataGridViewBand) |
RaiseCellClick(DataGridViewCellEventArgs) |
CellClick Vyvolá událost. (Zděděno od DataGridViewElement) |
RaiseCellContentClick(DataGridViewCellEventArgs) |
CellContentClick Vyvolá událost. (Zděděno od DataGridViewElement) |
RaiseCellContentDoubleClick(DataGridViewCellEventArgs) |
CellContentDoubleClick Vyvolá událost. (Zděděno od DataGridViewElement) |
RaiseCellValueChanged(DataGridViewCellEventArgs) |
CellValueChanged Vyvolá událost. (Zděděno od DataGridViewElement) |
RaiseDataError(DataGridViewDataErrorEventArgs) |
DataError Vyvolá událost. (Zděděno od DataGridViewElement) |
RaiseMouseWheel(MouseEventArgs) |
MouseWheel Vyvolá událost. (Zděděno od DataGridViewElement) |
ToString() |
Získá řetězec, který popisuje sloupec. |
Událost
Disposed |
Nastane při odstranění objektu DataGridViewColumn . (Zděděno od DataGridViewColumn) |