Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo DataGridViewRowCollection.AddRange (DataGridViewRow[])

 

Data di pubblicazione: ottobre 2016

Aggiunge alla raccolta gli oggetti DataGridViewRow specificati.

Spazio dei nomi:   System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

public virtual void AddRange(
	params DataGridViewRow[] dataGridViewRows
)

Parametri

dataGridViewRows
Type: System.Windows.Forms.DataGridViewRow[]

Matrice di oggetti DataGridViewRow da aggiungere a DataGridViewRowCollection.

Exception Condition
ArgumentNullException

dataGridViewRows è null.

ArgumentException

dataGridViewRows contiene una sola riga e tale riga contiene più celle rispetto alle colonne del controllo.

InvalidOperationException

Il controllo DataGridView associato sta eseguendo una delle azioni seguenti che impedisce temporaneamente l'aggiunta di nuove righe:

  • Selezione di tutte le celle nel controllo.

  • Annullamento della selezione.

-oppure-

Questo metodo viene chiamato da un gestore per uno degli eventi di DataGridView seguenti:

-oppure-

La proprietà DataSource di DataGridView non è null.

-oppure-

Almeno una voce nella matrice dataGridViewRows è null.

-oppure-

DataGridView non contiene colonne.

-oppure-

Almeno una riga nella matrice dataGridViewRows ha un valore della proprietà DataGridView non null.

-oppure-

Almeno una riga nella matrice dataGridViewRows ha un valore della proprietà Selected corrispondente a true.

-oppure-

Due o più righe nella matrice dataGridViewRows sono identiche.

-oppure-

Almeno una riga nella matrice dataGridViewRows contiene una o più celle di un tipo non compatibile con quello della colonna corrispondente nel controllo.

-oppure-

Almeno una riga nella matrice dataGridViewRows contiene più celle rispetto alle colonne nel controllo.

-oppure-

Questa operazione aggiunge righe bloccate dopo le righe non bloccate.

Il AddRange metodo aggiunge righe condivise per il DataGridViewRowCollection, se possibile. In caso contrario, le nuove righe non verranno condivise. Per altre informazioni, vedere Procedure consigliate per ridimensionare il controllo DataGridView Windows Form.

Le righe nel controllo non vengono ordinate automaticamente quando vengono aggiunte nuove righe. Per ordinare le nuove righe nella relativa posizione corretta, chiamare il DataGridView.Sort metodo in un DataGridView.RowsAdded gestore dell'evento. È anche possibile chiamare il DataGridView.Sort metodo in un CellValueChanged gestore eventi per ordinare le righe quando l'utente modifica una cella.

System_CAPS_importantImportante

A causa di un bug, il AddRange metodo renderà arresta la risposta dell'applicazione quando il AllowUserToAddRows è true e viene selezionata la riga per i nuovi record. Per risolvere questo problema, è necessario annullare la selezione della riga prima di chiamare questo metodo e quindi selezionare di nuovo la riga. Per ulteriori informazioni, vedere l'esempio di codice in questo argomento.

Esempio di codice seguente viene illustrato come utilizzare il AddRange metodo quando è selezionata la riga per i nuovi record per risolvere 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;
    }
}

.NET Framework
Disponibile da 2.0
Torna all'inizio
Mostra: