DataGridViewRowCollection.AddRange(DataGridViewRow[]) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přidá zadané DataGridViewRow objekty do kolekce.
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[]
Pole DataGridViewRow objektů, které se mají přidat do objektu DataGridViewRowCollection.
Výjimky
dataGridViewRows
je null
.
dataGridViewRows
obsahuje pouze jeden řádek a řádek, který obsahuje, obsahuje více buněk, než je sloupců v ovládacím prvku.
Přidružený DataGridView ovládací prvek provádí jednu z následujících akcí, která dočasně zabrání přidání nových řádků:
Výběr všech buněk v ovládacím prvku
Vymazání výběru
-nebo-
Tato metoda je volána z obslužné rutiny pro jednu z následujících DataGridView událostí:
-nebo-
Vlastnost DataSource objektu DataGridView není null
.
-nebo-
Nejméně jedna položka v dataGridViewRows
poli je null
.
-nebo-
Pole neobsahuje DataGridView žádné sloupce.
-nebo-
Nejméně jeden řádek v dataGridViewRows
poli má DataGridView hodnotu vlastnosti, která není null
.
-nebo-
Nejméně jeden řádek v dataGridViewRows
poli má Selected hodnotu true
vlastnosti .
-nebo-
Dva nebo více řádků v dataGridViewRows
poli jsou identické.
-nebo-
Nejméně jeden řádek v matici dataGridViewRows
obsahuje jednu nebo více buněk typu, který není kompatibilní s typem odpovídajícího sloupce v ovládacím prvku.
-nebo-
Alespoň jeden řádek v matici dataGridViewRows
obsahuje více buněk, než kolik je sloupců ovládacího prvku.
-nebo-
Tato operace by po rozbalování řádků přidala ukotvené řádky.
Příklady
Následující příklad kódu ukazuje, jak použít metodu AddRange , když je vybrán řádek pro nové záznamy pro řešení chyby uvedené v části Poznámky.
// 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
Poznámky
Metoda AddRange přidá sdílené řádky do objektu DataGridViewRowCollection, pokud je to možné. V opačném případě se nové řádky nesdílejí. Další informace najdete v tématu Osvědčené postupy pro škálování ovládacího prvku model Windows Forms DataGridView.
Řádky v ovládacím prvku nejsou při přidání nových řádků automaticky seřazeny. Chcete-li seřadit nové řádky do správné pozice, zavolejte metodu DataGridView.Sort v obslužné rutině DataGridView.RowsAdded události. Můžete také volat metodu DataGridView.Sort v obslužné rutině CellValueChanged události, která seřadí řádky, když uživatel změní buňku.
Důležité
Z důvodu chyby metoda způsobí, že AddRange aplikace přestane reagovat, pokud AllowUserToAddRows je true
vlastnost nastavena a je vybrán řádek pro nové záznamy. Chcete-li tuto chybu vyřešit, musíte zrušit výběr řádku před voláním této metody a pak řádek znovu vybrat. Další informace najdete v příkladu kódu v tomto tématu.