DataGridViewRowCollection.InsertRange メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > DataGridViewRowCollection.InsertRange メソッドの意味・解説 

DataGridViewRowCollection.InsertRange メソッド

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

コレクション内の指定した位置DataGridViewRow オブジェクト挿入します

名前空間: System.Windows.Forms
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)
構文構文

Public Overridable Sub InsertRange
 ( _
    rowIndex As Integer, _
    ParamArray dataGridViewRows As DataGridViewRow()
 _
)
Dim instance As DataGridViewRowCollection
Dim rowIndex As Integer
Dim dataGridViewRows As DataGridViewRow()

instance.InsertRange(rowIndex, dataGridViewRows)
public virtual void InsertRange (
    int rowIndex,
    params DataGridViewRow[] dataGridViewRows
)
public:
virtual void InsertRange (
    int rowIndex, 
    ... array<DataGridViewRow^>^ dataGridViewRows
)
public void InsertRange (
    int rowIndex, 
    DataGridViewRow[] dataGridViewRows
)
public function InsertRange (
    rowIndex : int, 
    ... dataGridViewRows : DataGridViewRow[]
)

パラメータ

rowIndex

行を挿入する位置

dataGridViewRows

DataGridViewRowCollection に追加する DataGridViewRow オブジェクト配列

例外例外
例外種類条件

ArgumentNullException

dataGridViewRowsnull 参照 (Visual Basic では Nothing) です。

ArgumentOutOfRangeException

rowIndex が 0 未満か、コレクション含まれる行数上回ってます。

ArgumentException

dataGridViewRows1 つだけ行を格納し格納されている行にコントロールの列数を超える数のセルあります

InvalidOperationException

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

または

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

  • CellEnter

  • CellLeave

  • CellValidating

  • CellValidated

  • RowEnter

  • RowLeave

  • RowValidated

  • RowValidating

または

rowIndexコレクション含まれる行数と同じであり、DataGridView.AllowUserToAddRows が true です。

または

DataGridView の DataSource プロパティnull 参照 (Visual Basic では Nothing) ではありません。

または

dataGridViewRows 配列内の最低 1 つのエントリが null 参照 (Visual Basic では Nothing) です。

または

DataGridView に列がありません。

または

dataGridViewRows 配列の最低 1 つの行の DataGridView プロパティnull 参照 (Visual Basic では Nothing) 以外の値が設定されています。

または

dataGridViewRows 配列の最低 1 つの行の Selected プロパティ値が true設定されています。

または

dataGridViewRows 配列2 つ上の行が同じです。

または

dataGridViewRows 配列の最低 1 つの行に、コントロール内の対応する列の型と互換性のない型のセル1 つ以上含まれています。

または

dataGridViewRows 配列の最低 1 つの行に、コントロールの列数を超える数のセルあります

または

この操作実行すると、固定されていない行の後に固定された行挿入されるか、または固定された行前に固定されていない行が挿入されます。

解説解説

InsertRange メソッドは、可能な場合は、DataGridViewRowCollection共有行を追加します共有行を追加できない場合新しい行は非共有となります詳細については、「Windows フォーム DataGridView コントロール拡張するための推奨される手順」を参照してください

新しい行の追加時にコントロール内の行が自動的に並べ替えられることはありません。新しい行を並べ替え上で正し位置挿入するには、DataGridView.RowsAdded イベント ハンドラで System.Windows.Forms.DataGridView.Sort メソッド呼び出します。また、CellValueChanged イベント ハンドラSystem.Windows.Forms.DataGridView.Sort メソッド呼び出すことにより、セルユーザーによって変更されたときに行を並べ替えることもできます

メモ重要 :

rowIndex よりも大きインデックスを持つ行を選択した場合InsertRange メソッドバグ原因で、アプリケーション応答停止なります。このバグ回避するには、このメソッド呼び出す前に行の選択キャンセルしメソッド呼び出した後で行を再選択する必要があります詳細については、このトピックコード例参照してください

使用例使用例

InsertRange メソッド使用して選択した行の前に行を挿入し、「解説セクション記載されているバグ回避する方法次のコード例示します

' Workaround for bug that prevents DataGridViewRowCollection.InsertRange
' from working when any rows before the insertion index are selected.
Private Sub InsertRows(ByVal
 index As Integer, _
    ByVal ParamArray rows As
 DataGridViewRow())

    Dim selectedIndexes As New
 System.Collections.Generic.List(Of Integer)

    For Each row As DataGridViewRow
 In dataGridView1.SelectedRows
        If row.Index >= index Then
            selectedIndexes.Add(row.Index)
            row.Selected = False
        End If
    Next row

    dataGridView1.Rows.InsertRange(index, rows)

    For Each selectedIndex As
 Integer In selectedIndexes
        dataGridView1.Rows(selectedIndex).Selected = True
    Next selectedIndex

End Sub
// Workaround for bug that prevents DataGridViewRowCollection.InsertRange
// from working when any rows before the insertion index are selected.
private void InsertRows(int
 index, params DataGridViewRow[] rows)
{
    System.Collections.Generic.List<int> selectedIndexes
 =
        new System.Collections.Generic.List<int>();
    foreach (DataGridViewRow row in dataGridView1.SelectedRows)
    {
        if (row.Index >= index)
        {
            selectedIndexes.Add(row.Index);
            row.Selected = false;
        }
    }
    dataGridView1.Rows.InsertRange(index, rows);
    foreach (int selectedIndex in
 selectedIndexes)
    {
        dataGridView1.Rows[selectedIndex].Selected = true;
    }
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DataGridViewRowCollection クラス
DataGridViewRowCollection メンバ
System.Windows.Forms 名前空間
DataGridView クラス
DataGridViewRow クラス
AddRange



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「DataGridViewRowCollection.InsertRange メソッド」の関連用語

DataGridViewRowCollection.InsertRange メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



DataGridViewRowCollection.InsertRange メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS