DataGridViewCell.ValueType プロパティ


セル内の値のデータ型を取得または設定します。Gets or sets the data type of the values in the cell.

 virtual property Type ^ ValueType { Type ^ get(); void set(Type ^ value); };
public virtual Type ValueType { get; set; }
member this.ValueType : Type with get, set
Public Overridable Property ValueType As Type


セル内の値のデータ型を表す TypeA Type representing the data type of the value in the cell.


次のコード例は、このプロパティの使用方法を示しています。The following code example demonstrates the use of this property.

private DataGridView dataGridView1 = new DataGridView();

private void AddColorColumn()
    DataGridViewComboBoxColumn comboBoxColumn =
        new DataGridViewComboBoxColumn();
        Color.Red, Color.Yellow, Color.Green, Color.Blue);
    comboBoxColumn.ValueType = typeof(Color);
    dataGridView1.EditingControlShowing +=
        new DataGridViewEditingControlShowingEventHandler(

private void dataGridView1_EditingControlShowing(object sender,
    DataGridViewEditingControlShowingEventArgs e)
    ComboBox combo = e.Control as ComboBox;
    if (combo != null)
        // Remove an existing event-handler, if present, to avoid 
        // adding multiple handlers when the editing control is reused.
        combo.SelectedIndexChanged -=
            new EventHandler(ComboBox_SelectedIndexChanged);

        // Add the event handler. 
        combo.SelectedIndexChanged +=
            new EventHandler(ComboBox_SelectedIndexChanged);

private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)
    ((ComboBox)sender).BackColor = (Color)((ComboBox)sender).SelectedItem;
Private WithEvents dataGridView1 As New DataGridView()

Private Sub AddColorColumn()

    Dim comboBoxColumn As New DataGridViewComboBoxColumn()
    comboBoxColumn.Items.AddRange( _
        Color.Red, Color.Yellow, Color.Green, Color.Blue)
    comboBoxColumn.ValueType = GetType(Color)

End Sub

Private Sub dataGridView1_EditingControlShowing(ByVal sender As Object, _
    ByVal e As DataGridViewEditingControlShowingEventArgs) _
    Handles dataGridView1.EditingControlShowing

    Dim combo As ComboBox = CType(e.Control, ComboBox)
    If (combo IsNot Nothing) Then

        ' Remove an existing event-handler, if present, to avoid 
        ' adding multiple handlers when the editing control is reused.
        RemoveHandler combo.SelectedIndexChanged, _
            New EventHandler(AddressOf ComboBox_SelectedIndexChanged)

        ' Add the event handler. 
        AddHandler combo.SelectedIndexChanged, _
            New EventHandler(AddressOf ComboBox_SelectedIndexChanged)

    End If

End Sub

Private Sub ComboBox_SelectedIndexChanged( _
    ByVal sender As Object, ByVal e As EventArgs)

    Dim comboBox1 As ComboBox = CType(sender, ComboBox)
    comboBox1.BackColor = _
        CType(CType(sender, ComboBox).SelectedItem, Color)

End Sub


セルの [ValueType] プロパティが設定されていない場合は、所有している列の DataGridViewColumn.ValueType プロパティが使用されます (存在する場合)。If the ValueType property for the cell has not been set, the DataGridViewColumn.ValueType property for the owning column is used, if it exists.

Value プロパティは、セルに含まれる実際のデータオブジェクトです。一方、FormattedValue プロパティは、データの書式設定された表現です。The Value property is the actual data object contained by the cell, whereas the FormattedValue property is the formatted representation of the data. ValueType プロパティと FormattedValueType プロパティは、これらの値のデータ型にそれぞれ対応します。The ValueType and FormattedValueType properties correspond to the data types of these values, respectively.