DataGridViewRowCollection.AddRange(DataGridViewRow[]) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Aggiunge gli oggetti specificati DataGridViewRow all'insieme.
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())
Parametri
- dataGridViewRows
- DataGridViewRow[]
Matrice di DataGridViewRow oggetti da aggiungere all'oggetto DataGridViewRowCollection.
Eccezioni
dataGridViewRows è null.
dataGridViewRows contiene una sola riga e la riga che contiene contiene più celle di quelle presenti nel controllo .
Il controllo associato DataGridView esegue una delle azioni seguenti che impedisce temporaneamente l'aggiunta di nuove righe:
Selezione di tutte le celle nel controllo .
Cancellazione della selezione.
oppure
Questo metodo viene chiamato da un gestore per uno degli eventi seguenti DataGridView :
oppure
La DataSource proprietà di DataGridView non nullè .
oppure
Almeno una voce nella dataGridViewRows matrice è null.
oppure
Non DataGridView dispone di colonne.
oppure
Almeno una riga nella dataGridViewRows matrice ha un DataGridView valore della proprietà che non nullè .
oppure
Almeno una riga nella dataGridViewRows matrice ha un Selected valore della proprietà .true
oppure
Due o più righe nella dataGridViewRows matrice sono identiche.
oppure
Almeno una riga nella dataGridViewRows matrice contiene una o più celle di un tipo incompatibile con il tipo della colonna corrispondente nel controllo .
oppure
Almeno una riga nella dataGridViewRows matrice contiene più celle di quelle presenti nel controllo .
oppure
Questa operazione aggiungerà righe bloccate dopo le righe non bloccate.
Esempio
Nell'esempio di codice seguente viene illustrato come utilizzare il AddRange metodo quando viene selezionata la riga per i nuovi record per aggirare il bug indicato nella sezione Osservazioni.
// 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
Commenti
Il AddRange metodo aggiunge righe condivise all'oggetto DataGridViewRowCollection, se possibile. In caso contrario, le nuove righe non vengono condivise. Per altre informazioni, vedere Procedure consigliate per il ridimensionamento del controllo DataGridView di Windows Form.
Le righe nel controllo non vengono ordinate automaticamente quando vengono aggiunte nuove righe. Per ordinare nuove righe nella posizione corretta, chiamare il DataGridView.Sort metodo in un DataGridView.RowsAdded gestore eventi. È anche possibile chiamare il DataGridView.Sort metodo in un CellValueChanged gestore eventi per ordinare le righe quando l'utente modifica una cella.
Importante
A causa di un bug, il metodo impedirà all'applicazione AddRange di rispondere se la AllowUserToAddRows proprietà è true e la riga per i nuovi record è selezionata. Per risolvere questo bug, è necessario annullare la selezione della riga prima di chiamare questo metodo e quindi selezionare nuovamente la riga. Per altre informazioni, vedere l'esempio di codice in questo argomento.