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 více buněk, než jsou sloupce v ovládacím prvku.
Přidružený DataGridView ovládací prvek provádí jednu z následujících akcí, které dočasně brá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 se volá z obslužné rutiny pro jednu z následujících DataGridView událostí:
nebo
Vlastnost DataSourceDataGridView není null.
nebo
Nejméně jedna položka v dataGridViewRows poli je null.
nebo
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 truevlastnosti .
nebo
Dva nebo více řádků v dataGridViewRows poli jsou identické.
nebo
Nejméně jeden řádek v dataGridViewRows poli obsahuje jednu nebo více buněk typu, které nejsou kompatibilní s typem odpovídajícího sloupce v ovládacím prvku.
nebo
Nejméně jeden řádek v dataGridViewRows poli obsahuje více buněk, než jsou sloupce v ovládacím prvku.
nebo
Tato operace by přidala ukotvené řádky za řádky, které zrušíte.
Příklady
Následující příklad kódu ukazuje, jak použít metodu AddRange při výběru řádku pro nové záznamy pro práci s chybou uvedenou 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 DataGridViewRowCollection, pokud je to možné. Jinak se nové řádky nesdílejí. Další informace naleznete v tématu Osvědčené postupy pro škálování ovládacího prvku Windows Forms DataGridView.
Řádky v ovládacím prvku nejsou automaticky seřazeny při přidání nových řádků. Chcete-li seřadit nové řádky do správné pozice, zavolejte DataGridView.Sort metodu 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 upraví buňku.
Důležité
Vzhledem k chybě metoda způsobí, že aplikace přestane reagovat, AddRange pokud AllowUserToAddRows je true vlastnost a je vybrán řádek pro nové záznamy. Chcete-li tuto chybu obejít, musíte před voláním této metody zrušit výběr řádku a pak řádek znovu vybrat. Další informace najdete v příkladu kódu v tomto tématu.