DataGridViewColumnCollection.Add メソッド

定義

指定した列をコレクションに追加します。

オーバーロード

Add(DataGridViewColumn)

指定した列をコレクションに追加します。

Add(String, String)

指定した列名と列ヘッダー テキストを持つ DataGridViewTextBoxColumn をコレクションに追加します。

Add(DataGridViewColumn)

指定した列をコレクションに追加します。

public:
 virtual int Add(System::Windows::Forms::DataGridViewColumn ^ dataGridViewColumn);
public virtual int Add (System.Windows.Forms.DataGridViewColumn dataGridViewColumn);
abstract member Add : System.Windows.Forms.DataGridViewColumn -> int
override this.Add : System.Windows.Forms.DataGridViewColumn -> int
Public Overridable Function Add (dataGridViewColumn As DataGridViewColumn) As Integer

パラメーター

dataGridViewColumn
DataGridViewColumn

追加する DataGridViewColumn

戻り値

列のインデックス番号。

例外

dataGridViewColumnnullです。

関連付けられた DataGridView コントロールによって次のいずれかのアクションが実行されているため、一時的に新しい列が追加できない状態にあります。

  • コントロール内のすべてのセルを選択します。

  • 選択範囲をクリアします。

  • DisplayIndex プロパティの値を更新しています。

- または -

このメソッドは、次のいずれかの DataGridView イベントのハンドラーから呼び出されています。

- または -

dataGridViewColumn は既に DataGridView コントロールに属しています。

- または -

dataGridViewColumnSortMode プロパティの値が Automatic で、なおかつ SelectionMode プロパティの値が FullColumnSelect または ColumnHeaderSelect です。 競合するプロパティ値を一時的に設定するには、コントロールの ISupportInitialize.BeginInit() メソッドと ISupportInitialize.EndInit() メソッドを使用します。

- または -

dataGridViewColumnInheritedAutoSizeMode プロパティの値が ColumnHeader で、なおかつ ColumnHeadersVisible プロパティの値が false です。

- または -

dataGridViewColumnInheritedAutoSizeMode プロパティの値が Fill で、なおかつ、Frozen プロパティの値が true です。

- または -

dataGridViewColumnFillWeight プロパティに、コントロールに含まれるすべての列の FillWeight を合わせた値が 65535 を超えるような値が設定されています。

- または -

逆の DisplayIndex プロパティ値を持つ列と隣接してしまうような Frozen プロパティ値と Frozen プロパティ値が、dataGridViewColumn に設定されています。

- または -

DataGridView コントロールに、少なくとも 1 つの行が存在し、なおかつ、dataGridViewColumnCellType プロパティの値が null です。

次のコード例は、このメソッドの使用方法を示しています。

private DataGridView dataGridView1 = new DataGridView();

private void AddColorColumn()
{
    DataGridViewComboBoxColumn comboBoxColumn =
        new DataGridViewComboBoxColumn();
    comboBoxColumn.Items.AddRange(
        Color.Red, Color.Yellow, Color.Green, Color.Blue);
    comboBoxColumn.ValueType = typeof(Color);
    dataGridView1.Columns.Add(comboBoxColumn);
    dataGridView1.EditingControlShowing +=
        new DataGridViewEditingControlShowingEventHandler(
        dataGridView1_EditingControlShowing);
}

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)
    dataGridView1.Columns.Add(comboBoxColumn)

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

こちらもご覧ください

適用対象

Add(String, String)

指定した列名と列ヘッダー テキストを持つ DataGridViewTextBoxColumn をコレクションに追加します。

public:
 virtual int Add(System::String ^ columnName, System::String ^ headerText);
public virtual int Add (string columnName, string headerText);
public virtual int Add (string? columnName, string? headerText);
abstract member Add : string * string -> int
override this.Add : string * string -> int
Public Overridable Function Add (columnName As String, headerText As String) As Integer

パラメーター

columnName
String

列を参照するために使用する名前。

headerText
String

列ヘッダーのテキスト。

戻り値

列のインデックス番号。

例外

関連付けられた DataGridView コントロールによって次のいずれかのアクションが実行されているため、一時的に新しい列が追加できない状態にあります。

  • コントロール内のすべてのセルを選択します。

  • 選択範囲をクリアします。

  • DisplayIndex プロパティの値を更新しています。

- または -

このメソッドは、次のいずれかの DataGridView イベントのハンドラーから呼び出されています。

- または -

SelectionMode プロパティの値が FullColumnSelect または ColumnHeaderSelect であり、列の既定の SortMode プロパティ値である Automatic と競合しています。

- または -

列の既定の FillWeight プロパティ値 (100) が使用されたことによって、コントロールに含まれるすべての列の FillWeight を合わせた値が 65535 を超えました。

注釈

columnNameパラメーターと headerText パラメーターはそれぞれ、 プロパティと HeaderText プロパティにName関連しています。

こちらもご覧ください

適用対象