DataGridViewRowCollection.AddRange(DataGridViewRow[]) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Belirtilen DataGridViewRow nesneleri koleksiyona ekler.
public:
virtual void AddRange(... cli::array <System::Windows::Forms::DataGridViewRow ^> ^ dataGridViewRows);
public virtual void AddRange (params System.Windows.Forms.DataGridViewRow[] dataGridViewRows);
abstract member AddRange : System.Windows.Forms.DataGridViewRow[] -> unit
override this.AddRange : System.Windows.Forms.DataGridViewRow[] -> unit
Public Overridable Sub AddRange (ParamArray dataGridViewRows As DataGridViewRow())
Parametreler
- dataGridViewRows
- DataGridViewRow[]
öğesine eklenecek DataGridViewRowCollectionnesne dizisiDataGridViewRow.
Özel durumlar
dataGridViewRows
, null
değeridir.
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ştiriyor:
Denetimdeki tüm hücreleri seçme.
Seçimi temizleme.
-veya-
Bu yöntem, aşağıdaki DataGridView olaylardan biri için bir işleyiciden çağrılır:
-veya-
DataSource özelliğinin DataGridView özelliği değildirnull
.
-veya-
Dizideki dataGridViewRows
en az bir giriş şeklindedir null
.
-veya-
sütun DataGridView içermiyor.
-veya-
Dizideki en az bir satırın dataGridViewRows
olmayan null
bir DataGridView özellik değeri vardır.
-veya-
Dizideki en az bir satırın dataGridViewRows
özellik değeri vardırtrue
.Selected
-veya-
Dizideki dataGridViewRows
iki veya daha fazla satır aynı.
-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 sonrasında 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 yeni kayıtların satırı seçildiğinde yönteminin nasıl kullanılacağını AddRange gösterir.
// Workaround for bug that prevents DataGridViewRowCollection.AddRange
// from working when the row for new records is selected.
private void AddRows(params DataGridViewRow[] rows)
{
InsertRows(dataGridView1.RowCount - 1, rows);
}
// 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.AddRange
' from working when the row for new records is selected.
Private Sub AddRows(ByVal ParamArray rows As DataGridViewRow())
InsertRows(dataGridView1.RowCount - 1, rows)
End Sub
' 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, AddRange 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.RowsAdded yöntemini çağırınDataGridView.Sort. Kullanıcı bir CellValueChanged hücreyi DataGridView.Sort değiştirdiğinde satırları sıralamak için bir olay işleyicisinde yöntemini çağırmak da isteyebilirsiniz.
Önemli
Bir hata nedeniyle, AddRange özellik true
seçiliyse ve yeni kayıtların AllowUserToAddRows satırı seçiliyse yöntemi uygulamanızın yanıt vermeyi durdurmasını sağlar. Bu hatayı geçici olarak çözmek için, bu yöntemi çağırmadan önce satırın seçimini iptal etmeniz ve ardından satırı yeniden seçmelisiniz. Daha fazla bilgi için bu konudaki kod örneğine bakın.