DataGridViewComboBoxCell 类

定义

显示 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
继承
DataGridViewComboBoxCell

示例

下面的代码示例演示 DataGridViewComboBoxColumn 了 使用 类的 DataGridViewComboBoxCell 类。 可以设置单元格 DataSourceValueMemberDisplayMember 属性,其方式与在本示例中设置相应的列属性相同。 此示例是类概述主题中提供的更大示例的 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 没有 SelectedIndexSelectedValue 属性。 相反,从下拉列表中选择一个值会设置单元格 Value 属性。

DataGridViewComboBoxColumn是专用于保存此类型的单元格的列类型。 默认情况下, DataGridViewComboBoxColumn.CellTemplate 初始化为新的 DataGridViewComboBoxCell。 若要在现有 DataGridViewComboBoxCell之后对列中的单元格进行图案化,请将列的 CellTemplate 属性设置为要用作模式的单元格。

列的单元格相关属性是模板单元格的类似名称属性的包装器。 更改模板单元格的属性值将仅影响基于更改后添加的模板的单元格。 但是,更改列的单元格相关属性值将更新模板单元格和列中的所有其他单元格,并在必要时刷新列显示。

除非要替代特定单元格的列值, DataGridViewComboBoxColumn 否则通常使用 类型。 类概述主题中所述 DataGridViewComboBoxColumn 的填充下拉列表的准则适用于单元格和列实例。

继承者说明

DataGridViewComboBoxCell 派生类并将新属性添加到派生类时,请务必重写 Clone() 方法,以在克隆操作期间复制新属性。 还应调用基类的 Clone() 方法,以便将基类的属性复制到新单元格。

构造函数

DataGridViewComboBoxCell()

初始化 DataGridViewComboBoxCell 类的新实例。

属性

AccessibilityObject

获取分配给 DataGridViewCell.DataGridViewCellAccessibleObjectDataGridViewCell

(继承自 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

获取或设置与此单元格关联的 ToolTip 文本。

(继承自 DataGridViewCell)
Value

获取或设置与此单元格关联的值。

(继承自 DataGridViewCell)
ValueMember

获取或设置一个字符串,指定要在何处收集下拉列表中使用的基础值。

ValueType

获取或设置单元格中值的数据类型。

Visible

获取一个值,该值指示单元格是否位于已隐藏的行或列中。

(继承自 DataGridViewCell)

方法

AdjustCellBorderStyle(DataGridViewAdvancedBorderStyle, DataGridViewAdvancedBorderStyle, Boolean, Boolean, Boolean, Boolean)

根据指定条件修改输入单元格的边框样式。

(继承自 DataGridViewCell)
BorderWidths(DataGridViewAdvancedBorderStyle)

返回一个 Rectangle,它表示所有单元格的边距宽度。

(继承自 DataGridViewCell)
ClickUnsharesRow(DataGridViewCellEventArgs)

指示在单击单元格时,是否对单元格所在的行取消共享。

(继承自 DataGridViewCell)
Clone()

创建此单元格的精确副本。

ContentClickUnsharesRow(DataGridViewCellEventArgs)

指示在单击单元格的内容时,是否对该单元格所在的行取消共享。

(继承自 DataGridViewCell)
ContentDoubleClickUnsharesRow(DataGridViewCellEventArgs)

指示在双击单元格的内容时,是否对该单元格所在的行取消共享。

(继承自 DataGridViewCell)
CreateAccessibilityInstance()

为此 DataGridViewComboBoxCell 实例创建新 AccessibleObject

CreateAccessibilityInstance()

DataGridViewCell 创建一个新的可访问对象。

(继承自 DataGridViewCell)
DetachEditingControl()

DataGridView 中删除单元格的编辑控件。

Dispose()

释放由 DataGridViewCell 使用的所有资源。

(继承自 DataGridViewCell)
Dispose(Boolean)

释放由 DataGridViewCell 占用的非托管资源,还可以另外再释放托管资源。

(继承自 DataGridViewCell)
DoubleClickUnsharesRow(DataGridViewCellEventArgs)

指示在双击单元格时,是否对该单元格所在的行取消共享。

(继承自 DataGridViewCell)
EnterUnsharesRow(Int32, Boolean)

指示在焦点移到某单元格时,是否对相应父行取消共享。

(继承自 DataGridViewCell)
Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetClipboardContent(Int32, Boolean, Boolean, Boolean, Boolean, String)

检索要复制到 Clipboard 的单元格的已设置格式的值。

(继承自 DataGridViewCell)
GetContentBounds(Graphics, DataGridViewCellStyle, Int32)

返回围绕单元格内容区域的边框,该区域是使用指定的 Graphics 和单元格样式计算的。

GetContentBounds(Int32)

使用默认的 Graphics 和单元格当前应用的单元格样式,返回围绕单元格内容区域的边框。

(继承自 DataGridViewCell)
GetEditedFormattedValue(Int32, DataGridViewDataErrorContexts)

返回该单元格的当前格式化值,而不考虑该单元格是否处于编辑模式,也无论是否尚未提交此值。

(继承自 DataGridViewCell)
GetErrorIconBounds(Graphics, DataGridViewCellStyle, Int32)

如果显示了单元格的错误图标,则返回环绕该图标的边框。

GetErrorText(Int32)

返回表示单元格错误的字符串。

(继承自 DataGridViewCell)
GetFormattedValue(Object, Int32, DataGridViewCellStyle, TypeConverter, TypeConverter, DataGridViewDataErrorContexts)

获取单元格数据的格式化值。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetInheritedContextMenuStrip(Int32)

获取当前单元格的继承快捷菜单。

(继承自 DataGridViewCell)
GetInheritedState(Int32)

返回一个值,该值指示此单元格从它的行和列的状态继承后的当前状态。

(继承自 DataGridViewCell)
GetInheritedStyle(DataGridViewCellStyle, Int32, Boolean)

获取应用于单元格的样式。

(继承自 DataGridViewCell)
GetPreferredSize(Graphics, DataGridViewCellStyle, Int32, Size)

计算单元格的首选大小(以像素为单位)。

GetSize(Int32)

获取单元格的大小。

(继承自 DataGridViewCell)
GetType()

获取当前实例的 Type

(继承自 Object)
GetValue(Int32)

获取单元格的值。

(继承自 DataGridViewCell)
InitializeEditingControl(Int32, Object, DataGridViewCellStyle)

附加并初始化寄宿的编辑控件。

KeyDownUnsharesRow(KeyEventArgs, Int32)

指示在焦点位于单元格上,同时用户按任意键时,是否对父行取消共享。

(继承自 DataGridViewCell)
KeyEntersEditMode(KeyEventArgs)

确定是否应基于给定键启动编辑模式。

KeyPressUnsharesRow(KeyPressEventArgs, Int32)

指示在焦点位于该行的单元格上并同时按任意键时,是否取消行的共享。

(继承自 DataGridViewCell)
KeyUpUnsharesRow(KeyEventArgs, Int32)

指示当焦点位于单元格上,同时用户释放某个键时,是否对父行取消共享。

(继承自 DataGridViewCell)
LeaveUnsharesRow(Int32, Boolean)

指示在焦点离开某行的单元格时,是否对该行取消共享。

(继承自 DataGridViewCell)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
MouseClickUnsharesRow(DataGridViewCellMouseEventArgs)

指示在鼠标指针位于某行的单元格上,同时用户单击鼠标按钮时,是否应对该行取消共享。

(继承自 DataGridViewCell)
MouseDoubleClickUnsharesRow(DataGridViewCellMouseEventArgs)

指示当用户双击行中的单元格时,是否将对该行取消共享。

(继承自 DataGridViewCell)
MouseDownUnsharesRow(DataGridViewCellMouseEventArgs)

指示在指针位于行中某个单元格上,同时用户按住鼠标按钮时,是否对该行取消共享。

(继承自 DataGridViewCell)
MouseEnterUnsharesRow(Int32)

指示当鼠标指针移过行中某个单元格上时,该行是否取消共享状态。

(继承自 DataGridViewCell)
MouseLeaveUnsharesRow(Int32)

指示当鼠标指针离开某行时,该行是否取消共享状态。

(继承自 DataGridViewCell)
MouseMoveUnsharesRow(DataGridViewCellMouseEventArgs)

指示当鼠标指针移过行中某个单元格上时,该行是否取消共享状态。

(继承自 DataGridViewCell)
MouseUpUnsharesRow(DataGridViewCellMouseEventArgs)

指示在鼠标指针位于行中某个单元格上,同时用户释放鼠标按钮时,是否对该行取消共享。

(继承自 DataGridViewCell)
OnClick(DataGridViewCellEventArgs)

在单击单元格时进行调用。

(继承自 DataGridViewCell)
OnContentClick(DataGridViewCellEventArgs)

在单击单元格的内容时进行调用。

(继承自 DataGridViewCell)
OnContentDoubleClick(DataGridViewCellEventArgs)

在双击单元格的内容时进行调用。

(继承自 DataGridViewCell)
OnDataGridViewChanged()

在单元格的 DataGridView 属性更改时调用。

OnDoubleClick(DataGridViewCellEventArgs)

在双击单元格时进行调用。

(继承自 DataGridViewCell)
OnEnter(Int32, Boolean)

在焦点移动到单元格时进行调用。

OnKeyDown(KeyEventArgs, Int32)

在焦点位于单元格上并同时按下字符键时进行调用。

(继承自 DataGridViewCell)
OnKeyPress(KeyPressEventArgs, Int32)

在焦点位于单元格上并同时按任意键时进行调用。

(继承自 DataGridViewCell)
OnKeyUp(KeyEventArgs, Int32)

在焦点位于单元格上并同时释放字符键时进行调用。

(继承自 DataGridViewCell)
OnLeave(Int32, Boolean)

当焦点从单元格上移开时调用。

OnMouseClick(DataGridViewCellMouseEventArgs)

在指针位于单元格上且用户同时单击鼠标按钮时进行调用。

OnMouseDoubleClick(DataGridViewCellMouseEventArgs)

在指针位于单元格上,同时用户双击鼠标按钮时进行调用。

(继承自 DataGridViewCell)
OnMouseDown(DataGridViewCellMouseEventArgs)

在指针位于单元格上,同时用户按住鼠标按钮时进行调用。

(继承自 DataGridViewCell)
OnMouseEnter(Int32)

当鼠标指针移到单元格上时调用。

OnMouseLeave(Int32)

在鼠标指针离开单元格时调用。

OnMouseMove(DataGridViewCellMouseEventArgs)

当鼠标指针在单元格内移动时调用。

OnMouseUp(DataGridViewCellMouseEventArgs)

在指针位于单元格上,同时用户释放鼠标按钮时进行调用。

(继承自 DataGridViewCell)
Paint(Graphics, Rectangle, Rectangle, Int32, DataGridViewElementStates, Object, Object, String, DataGridViewCellStyle, DataGridViewAdvancedBorderStyle, DataGridViewPaintParts)

绘制当前的 DataGridViewComboBoxCell

PaintBorder(Graphics, Rectangle, Rectangle, DataGridViewCellStyle, DataGridViewAdvancedBorderStyle)

绘制当前 DataGridViewCell 的边框。

(继承自 DataGridViewCell)
PaintErrorIcon(Graphics, Rectangle, Rectangle, String)

绘制当前 DataGridViewCell 的错误图标。

(继承自 DataGridViewCell)
ParseFormattedValue(Object, DataGridViewCellStyle, TypeConverter, TypeConverter)

将为便于显示而进行了格式设置的值转换为实际的单元格值。

PositionEditingControl(Boolean, Boolean, Rectangle, Rectangle, DataGridViewCellStyle, Boolean, Boolean, Boolean, Boolean)

设置由 DataGridView 控件中的单元格承载的编辑控件的位置和大小。

(继承自 DataGridViewCell)
PositionEditingPanel(Rectangle, Rectangle, DataGridViewCellStyle, Boolean, Boolean, Boolean, Boolean)

设置单元格承载的编辑面板的位置和大小,并返回编辑面板内编辑控件的正常界限。

(继承自 DataGridViewCell)
RaiseCellClick(DataGridViewCellEventArgs)

引发 CellClick 事件。

(继承自 DataGridViewElement)
RaiseCellContentClick(DataGridViewCellEventArgs)

引发 CellContentClick 事件。

(继承自 DataGridViewElement)
RaiseCellContentDoubleClick(DataGridViewCellEventArgs)

引发 CellContentDoubleClick 事件。

(继承自 DataGridViewElement)
RaiseCellValueChanged(DataGridViewCellEventArgs)

引发 CellValueChanged 事件。

(继承自 DataGridViewElement)
RaiseDataError(DataGridViewDataErrorEventArgs)

引发 DataError 事件。

(继承自 DataGridViewElement)
RaiseMouseWheel(MouseEventArgs)

引发 MouseWheel 事件。

(继承自 DataGridViewElement)
SetValue(Int32, Object)

设置单元格的值。

(继承自 DataGridViewCell)
ToString()

返回描述当前对象的字符串。

适用于

另请参阅