DataGridViewRowCollection.AddRange(DataGridViewRow[]) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Dodaje określone DataGridViewRow obiekty do kolekcji.
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())
Parametry
- dataGridViewRows
- DataGridViewRow[]
Tablica DataGridViewRow obiektów, które mają zostać dodane do obiektu DataGridViewRowCollection.
Wyjątki
dataGridViewRows
to null
.
dataGridViewRows
zawiera tylko jeden wiersz, a wiersz, który zawiera, zawiera więcej komórek niż kolumny w kontrolce.
Skojarzona DataGridView kontrolka wykonuje jedną z następujących akcji, które tymczasowo uniemożliwiają dodanie nowych wierszy:
Zaznaczanie wszystkich komórek w kontrolce.
Wyczyszczenie zaznaczenia.
-lub-
Ta metoda jest wywoływana z programu obsługi dla jednego z następujących DataGridView zdarzeń:
-lub-
Właściwość DataSource elementu DataGridView to nie null
.
-lub-
Co najmniej jeden wpis w tablicy dataGridViewRows
to null
.
-lub-
Kolumny DataGridView nie są dostępne.
-lub-
Co najmniej jeden wiersz w tablicy dataGridViewRows
ma DataGridView wartość właściwości, która nie null
jest .
-lub-
Co najmniej jeden wiersz w tablicy dataGridViewRows
ma Selected wartość true
właściwości .
-lub-
Co najmniej dwa wiersze w tablicy dataGridViewRows
są identyczne.
-lub-
Co najmniej jeden wiersz w tablicy dataGridViewRows
zawiera co najmniej jedną komórkę typu niezgodnego z typem odpowiedniej kolumny w kontrolce.
-lub-
Co najmniej jeden wiersz w tablicy dataGridViewRows
zawiera więcej komórek niż kolumny w kontrolce.
-lub-
Ta operacja spowoduje dodanie zamrożonych wierszy po odłączeniu wierszy.
Przykłady
Poniższy przykład kodu pokazuje, jak używać metody, AddRange gdy wiersz dla nowych rekordów jest wybrany do obejścia usterki wskazanej w sekcji Uwagi.
// 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
Uwagi
Metoda AddRange dodaje współużytkowane wiersze do elementu DataGridViewRowCollection, jeśli to możliwe. W przeciwnym razie nowe wiersze są nieudostępniane. Aby uzyskać więcej informacji, zobacz Najlepsze rozwiązania dotyczące skalowania kontrolki Windows Forms DataGridView.
Wiersze w kontrolce nie są automatycznie sortowane po dodaniu nowych wierszy. Aby posortować nowe wiersze w prawidłowej pozycji, wywołaj metodę DataGridView.Sort w procedurze obsługi zdarzeń DataGridView.RowsAdded . Możesz również wywołać metodę DataGridView.Sort w procedurze CellValueChanged obsługi zdarzeń, aby posortować wiersze, gdy użytkownik modyfikuje komórkę.
Ważne
Ze względu na usterkę metoda spowoduje, że aplikacja przestanie odpowiadać, AddRange jeśli AllowUserToAddRows właściwość jest true
i zostanie wybrany wiersz dla nowych rekordów. Aby obejść tę usterkę, należy anulować wybór wiersza przed wywołaniem tej metody, a następnie ponownie zaznaczyć wiersz. Aby uzyskać więcej informacji, zobacz przykład kodu w tym temacie.