public ref class DataGridViewComboBoxCell : System::Windows::Forms::DataGridViewCell
public class DataGridViewComboBoxCell : System.Windows.Forms.DataGridViewCell
type DataGridViewComboBoxCell = class
inherit DataGridViewCell
Public Class DataGridViewComboBoxCell
Inherits DataGridViewCell
DataGridViewComboBoxCell
下列程式碼範例示範
DataGridViewComboBoxColumn
類別,該類別會利用 類別
DataGridViewComboBoxCell
。 您可以使用與本範例中設定對應資料行屬性相同的方式來設定儲存格
DataSource
、
ValueMember
和
DisplayMember
屬性。 這個範例是類別概觀主題中較大範例的
DataGridViewComboBoxColumn
一部分。
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 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 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
Region
PostalCode
Country
HomePhone
Extension
Photo
Notes
ReportsTo
PhotoPath
OutOfOffice
End Enum
類別
DataGridViewComboBoxCell
是用來顯示下拉式方塊控制項的特殊類型
DataGridViewCell
,這是與清單選取欄位結合的編輯欄位。 目前選取
DataGridViewComboBoxCell
的 會裝載 ,
DataGridViewComboBoxEditingControl
其中使用者可以變更儲存格的值,假設儲存格的
ReadOnly
屬性設定為
false
。
ComboBox
不同于 控制項,
DataGridViewComboBoxCell
沒有
SelectedIndex
和
SelectedValue
屬性。 相反地,從下拉式清單中選取值會設定儲存格
Value
屬性。
DataGridViewComboBoxColumn
是特製化用來保存此類型儲存格的資料行類型。 根據預設,會將
DataGridViewComboBoxColumn.CellTemplate
初始化為新的
DataGridViewComboBoxCell
。 若要在現有
DataGridViewComboBoxCell
之後建立資料行內儲存格的圖樣,請將資料行的
CellTemplate
屬性設定為要當做圖樣使用的儲存格。
資料行的儲存格相關屬性是樣板儲存格之類似名稱屬性的包裝函式。 變更範本儲存格的屬性值只會根據變更之後新增的範本,影響儲存格。 不過,變更資料行的儲存格相關屬性值將會更新範本儲存格和資料行中的所有其他儲存格,並視需要重新整理資料行顯示。
除非您想要覆寫特定儲存格的資料行值,
DataGridViewComboBoxColumn
否則您通常會使用 類型。 填入下拉式清單之類別概觀主題中所述
DataGridViewComboBoxColumn
的指導方針適用于資料格和資料行實例。
給繼承者的注意事項
當您衍生自
DataGridViewComboBoxCell
並將新屬性新增至衍生類別時,請務必覆寫
Clone()
方法,以在複製作業期間複製新屬性。 您也應該呼叫基類的
Clone()
方法,以便基類的屬性複製到新的儲存格。
Paint(Graphics, Rectangle, Rectangle, Int32, DataGridViewElementStates,
Object, Object, String, DataGridViewCellStyle, DataGridViewAdvancedBorderStyle,
DataGridViewPaintParts)
繪製目前的
DataGridViewComboBoxCell
。