Posts
256
Comments
330
Trackbacks
7
DataTable.RowChanged e ProgressBar

Se abbiamo bisogno di una soluzione veloce per visualizzare l'avanzamento di un controllo ProgressBar durante il caricamento di un DataTable, possiamo gestire l'evento RowChanded in questo modo:

1 Private Sub CustomRowChanged(ByVal sender As Object, ByVal e As DataRowChangeEventArgs) 2 3 If (e.Action = DataRowAction.Commit) Then 4 'Avanziamo il valore della progress bar 5 ProgressBar1.Value += 1 6 Application.DoEvents() 7 End If 8 9 End Sub

Il codice per popolare il DataTable con i dati e per registrare il gestore eventi personalizzato può essere del tipo:

1 'Imposto la proprietà Maximux del controllo ProgressBar 2 ProgressBar1.Value = 0 3 ProgressBar1.Maximum = GetNumeroRecords() 4 5 'Registro il gestore eventi personalizzato 6 AddHandler Articoli.ArticoliDataTable.RowChanged, AddressOf CustomRowChanged 7 8 Try 9 DataGridView1.SuspendLayout() 10 11 'Popolo il DataTable 12 ArticoliTableAdapter.Fill(Articoli.ArticoliDataTable) 13 14 MessageBox.Show(String.Format("Caricati {0} records",Articoli.ArticoliDataTable.Rows.Count)) 15 16 Catch ex As Exception 17 MessageBox.Show(ex.Message) 18 Finally 19 DataGridView1.ResumeLayout() 20 'Rimuovo l'handler... 21 RemoveHandler Articoli.ArticoliDataTable.RowChanged, AddressOf CustomRowChanged 22 End Try

Ovviamente si potrebbero usare modelli di programmazione asincrona o popolare dati mediante un thread diverso da quello principale.

posted on mercoledì 13 febbraio 2008 17.00 Print
Comments have been closed on this topic.
News

View Pietro Libro's profile on LinkedIn

DomusDotNet
   DomusDotNet

Pietro Libro