DataGridViewComboBoxCell 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
顯示 DataGridView 控制項中的下拉式方塊。
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
- 繼承
範例
下列程式碼範例示範 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
City
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() 方法,以便基類的屬性複製到新的儲存格。
建構函式
DataGridViewComboBoxCell() |
初始化 DataGridViewComboBoxCell 類別的新執行個體。 |
屬性
AccessibilityObject |
取得指定給 DataGridViewCell.DataGridViewCellAccessibleObject 的 DataGridViewCell。 (繼承來源 DataGridViewCell) |
AutoComplete |
取得或設定值,指出此儲存格是否會符合在下拉式清單中有選項的儲存格中所輸入的字元。 |
ColumnIndex |
取得這個儲存格的資料行索引。 (繼承來源 DataGridViewCell) |
ContentBounds |
取得圍住儲存格內容區域的周框。 (繼承來源 DataGridViewCell) |
ContextMenuStrip |
取得或設定與儲存格相關聯的捷徑功能表。 (繼承來源 DataGridViewCell) |
DataGridView |
取得與這個項目有關聯的 DataGridView 控制項。 (繼承來源 DataGridViewElement) |
DataSource |
取得或設定資料來源,其中的資料包含可能顯示在下拉式清單中的選項。 |
DefaultNewRowValue |
取得新資料錄之資料列中儲存格的預設值。 (繼承來源 DataGridViewCell) |
Displayed |
取得值,該值表示儲存格目前是否顯示於螢幕上。 (繼承來源 DataGridViewCell) |
DisplayMember |
取得或設定字串,此字串指定要從何處蒐集要顯示在下拉式清單中的選項。 |
DisplayStyle |
取得或設定值,這個值可判斷當此下拉式方塊不在編輯模式中時,要如何顯示它。 |
DisplayStyleForCurrentCellOnly |
取得或設定值,指出僅當儲存格為 DisplayStyle 控制項中的目前儲存格時,DataGridView 屬性值才套用至儲存格。 |
DropDownWidth |
取得或設定下拉式方塊的下拉式清單部分的寬度。 |
EditedFormattedValue |
取得目前已格式化的儲存格值,不管儲存格是否處於編輯模式,而值是否尚未認可。 (繼承來源 DataGridViewCell) |
EditType |
取得儲存格的裝載編輯控制項型別。 |
ErrorIconBounds |
取得儲存格之錯誤圖示的界限。 (繼承來源 DataGridViewCell) |
ErrorText |
取得或設定文字,描述與儲存格相關聯的錯誤狀況。 (繼承來源 DataGridViewCell) |
FlatStyle |
取得或設定儲存格的平面樣式外觀。 |
FormattedValue |
取得儲存格的格式化值,以供顯示。 (繼承來源 DataGridViewCell) |
FormattedValueType |
取得與儲存格相關的格式化值的類別型別。 |
Frozen |
取得指出是否已凍結此儲存格的值。 (繼承來源 DataGridViewCell) |
HasStyle |
取得指出是否已經設定 Style 屬性的值。 (繼承來源 DataGridViewCell) |
InheritedState |
取得儲存格的目前狀態,是繼承其資料列和資料行的狀態。 (繼承來源 DataGridViewCell) |
InheritedStyle |
取得目前套用至儲存格的樣式。 (繼承來源 DataGridViewCell) |
IsInEditMode |
取得指出目前是否正在編輯這個儲存格的值。 (繼承來源 DataGridViewCell) |
Items |
取得物件,表示顯示在下拉式清單中的選項。 |
MaxDropDownItems |
取得或設定顯示在下拉式清單中的最大項目數。 |
OwningColumn |
取得包含這個儲存格的資料行。 (繼承來源 DataGridViewCell) |
OwningRow |
取得包含這個儲存格的資料列。 (繼承來源 DataGridViewCell) |
PreferredSize |
取得能夠容納儲存格的矩形區域大小 (以像素為單位)。 (繼承來源 DataGridViewCell) |
ReadOnly |
取得或設定值,指出是否可以編輯儲存格的資料。 (繼承來源 DataGridViewCell) |
Resizable |
取得指出儲存格是否可以調整大小的值。 (繼承來源 DataGridViewCell) |
RowIndex |
取得儲存格的父資料列索引。 (繼承來源 DataGridViewCell) |
Selected |
取得或設定值,指出是否已選取此儲存格。 (繼承來源 DataGridViewCell) |
Size |
取得儲存格的大小。 (繼承來源 DataGridViewCell) |
Sorted |
取得或設定值,指出是否會為下拉式方塊中的項目自動排序。 |
State |
取得此項目的使用者介面 (UI) 狀態。 (繼承來源 DataGridViewElement) |
Style |
取得或設定儲存格的樣式。 (繼承來源 DataGridViewCell) |
Tag |
取得或設定物件,其中包含儲存格的相關補充資料。 (繼承來源 DataGridViewCell) |
ToolTipText |
取得或設定與這個儲存格相關聯的工具提示文字。 (繼承來源 DataGridViewCell) |
Value |
取得或設定與這個儲存格相關聯的值。 (繼承來源 DataGridViewCell) |
ValueMember |
取得或設定字串,此字串指定要從何處蒐集用於下拉式清單中的基礎值。 |
ValueType |
取得或設定儲存格中值的資料類型。 |
Visible |
取得指出儲存格是在已隱藏資料列或是資料行中的值。 (繼承來源 DataGridViewCell) |