Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    [VB.NET] Incremento progressbar su Dialog

    Ciao a tutti,
    ho realizzato tramite questo pezzo di codice la scrittura su DB Access di alcuni record contenuti in un file CSV:
    codice:
    Dim diag As New Dialog1()
    diag.ShowDialog()
    
    Try
      objconn.Open()
      risputente = objcomm.ExecuteNonQuery()
      If risputente = 1 Then
        nrinserimenti = nrinserimenti + 1
        Dialog1.ProgressBar1.Increment(1)
        objconn.Close()
      End If
    Catch es As Exception
      MsgBox("Errore inserimento: riga nr " & riga & vbCrLf & "SQL: " & stringasql)
      objconn.Close()
    End Try
    ho creato la finestra di dialogo Dialog1 (contenente solo una progressbar) in questo modo:
    codice:
    Private Sub Dialog1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      ProgressBar1.Maximum = Form1.nrarticoli
    End Sub
    in modo da indicare la dimensione massima della progressbar.
    Il mio problema è che la progressbar non avanza... L'avanzamento degli inserimenti viene fatto dalla Form1, mentre la progressbar è nella Dialog1. Pensavo si potesse realizzare con:
    codice:
    Dialog1.ProgressBar1.Increment(1)
    Come si può risolvere questo problema???

    Grazie a tutti!!!!

    Alessio

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    metti la progressbar pubblica all'interno di dialog1

  3. #3
    Se vuoi che la form di visualizzazione della progressbar sia modale, devi fare in modo che la procedura venga eseguita da essa, in quanto, una volta aperta la form modale, il thread si pianta fino alla sua chiusura.


    Facci sapere...
    Ciao

  4. #4
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    anche quasto è vero.. almeno che la dialog 1 non sia eseguita su un thread diverso

  5. #5
    Se fosse aperta da un thread diverso .... non avrebbe senso renderla modale.
    Ciao

  6. #6
    Grazie intanto per le risposte....

    Originariamente inviato da Jeremy75
    Se vuoi che la form di visualizzazione della progressbar sia modale, devi fare in modo che la procedura venga eseguita da essa, in quanto, una volta aperta la form modale, il thread si pianta fino alla sua chiusura.
    mi sono accorto debuggando un po' che effettivamente la procedura si pianta quando entro nella Dialog1, quindi non mi fa le query...

    Io avevo pensato alla Dialog perchè in questo modo durante l'operazione di caricamento nel db non si potesse fare altro... Solo che effettivamente aprendo una Dialog, la situazione non si sblocca finchè non sono finite le operazioni della Dialog...

    Spostare tutto nella Dialog potrebbe essere una soluzione... Ma quando ho finito di caricare tutte le tuple nel db come faccio a "ritornare" alla form1? Basta un semplice
    codice:
    Me.close()
    ???

    Grazie

  7. #7
    SI

  8. #8
    Grazie mille, provo subito!!!

  9. #9
    Originariamente inviato da snieco
    Spostare tutto nella Dialog potrebbe essere una soluzione...
    Ho fatto lo spostamento, ora le query vengono eseguite ed i dati vengono caricati nel DB, però non mi si apre la Dialog1... Come mai???

  10. #10
    Perchè hai messo il codice nell'evento Load del form Dialog....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.