DataGridViewRowCollection.InsertRange(Int32, DataGridViewRow[]) Yöntem

Tanım

DataGridViewRow Nesneleri belirtilen konumdaki koleksiyona ekler.

public:
 virtual void InsertRange(int rowIndex, ... cli::array <System::Windows::Forms::DataGridViewRow ^> ^ dataGridViewRows);
public virtual void InsertRange(int rowIndex, params System.Windows.Forms.DataGridViewRow[] dataGridViewRows);
abstract member InsertRange : int * System.Windows.Forms.DataGridViewRow[] -> unit
override this.InsertRange : int * System.Windows.Forms.DataGridViewRow[] -> unit
Public Overridable Sub InsertRange (rowIndex As Integer, ParamArray dataGridViewRows As DataGridViewRow())

Parametreler

rowIndex
Int32

Satırların eklendiği konum.

dataGridViewRows
DataGridViewRow[]

öğesine eklenecek DataGridViewRowbir nesne dizisiDataGridViewRowCollection.

Özel durumlar

dataGridViewRows, null'e eşittir.

rowIndex sıfırdan küçük veya koleksiyondaki satır sayısından büyük.

dataGridViewRows yalnızca bir satır içerir ve içerdiği satırda denetimdeki sütunlardan daha fazla hücre vardır.

İlişkili DataGridView denetim, yeni satırların eklenmesini geçici olarak engelleyen aşağıdaki eylemlerden birini gerçekleştirmektedir:

  • Denetimdeki tüm hücreleri seçme.

  • Seçim temizleniyor.

-veya-

Bu yöntem, aşağıdaki DataGridView olaylardan biri için bir işleyiciden çağrılır:

-veya-

rowIndex , koleksiyondaki satır sayısına eşittir ve AllowUserToAddRows şeklindedir true.

-veya-

DataSource özelliğinin DataGridView özelliği değildirnull.

-veya-

Dizideki dataGridViewRows en az bir girdi olur null.

-veya-

sütun DataGridView içermiyor.

-veya-

Dizideki dataGridViewRows en az bir satır, olmayan DataGridViewbir null özellik değerine sahiptir.

-veya-

Dizideki en az bir satırın dataGridViewRows özellik değeri vardırSelected.true

-veya-

Dizideki dataGridViewRows iki veya daha fazla satır aynıdır.

-veya-

Dizideki dataGridViewRows en az bir satır, denetimdeki ilgili sütunun türüyle uyumlu olmayan türde bir veya daha fazla hücre içerir.

-veya-

Dizideki dataGridViewRows en az bir satır, denetimdeki sütunlardan daha fazla hücre içeriyor.

-veya-

Bu işlem dondurulmamış satırların arkasına dondurulmuş satırlar veya dondurulmamış satırların önüne dondurulmuş satırları ekler.

Örnekler

Aşağıdaki kod örneği, Açıklamalar bölümünde belirtilen hataya geçici bir çözüm olarak seçili satırların önüne satır eklemek için yönteminin nasıl kullanılacağını InsertRange gösterir.

// 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;
    }
}
' 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

Açıklamalar

yöntemi, InsertRange mümkünse öğesine paylaşılan satırlar DataGridViewRowCollectionekler. Aksi takdirde, yeni satırlar paylaşılmaz. Daha fazla bilgi için bkz. Windows Forms DataGridView Denetimini Ölçeklendirmeye yönelik En İyi Yöntemler.

Denetimdeki satırlar, yeni satırlar eklendiğinde otomatik olarak sıralanmaz. Yeni satırları doğru konumlarına sıralamak için bir olay işleyicisinde DataGridView.Sort yöntemini çağırınDataGridView.RowsAdded. Kullanıcı bir DataGridView.Sort hücreyi CellValueChanged değiştirdiğinde satırları sıralamak için bir olay işleyicisinde yöntemini çağırmak da isteyebilirsiniz.

Important

Bir hata nedeniyle yöntemi, InsertRange dizini daha büyük olan satırlar seçilirse uygulamanızın yanıt vermeyi durdurmasını rowIndex sağlar. Bu hatayı geçici olarak çözmek için, bu yöntemi çağırmadan önce bu satırların seçimini iptal etmeniz ve sonra satırları yeniden seçmelisiniz. Daha fazla bilgi için bu konudaki kod örneğine bakın.

Şunlara uygulanır

Ayrıca bkz.