Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    15

    Apertura form dopo completamento della progress bar

    Salve a tutti, volevo chiedere se qualcuno può aiutarmi, sul form 1 ho inserito una progressbar, quando il mouse va sul bottone la progress bar carica e alla fine del caricamento dovrebbe aprirmi il form 2, ma se ci metto form2.Show(), quando vado sul bottone mi apre subito il form2 senza caricare la barra. Come posso fare?
    Grazie

  2. #2
    Posta il codice che hai scritto finora.
    P.S.: linguaggio?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    15
    Il linguaggio è visual basic però non so se si riferisce a c++ e poi non sono ferratissimo
    Il codice finoscritto è questo che segue:

    Public Class Form1

    Dim value As String
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Timer1.Interval = 30
    Timer1.Enabled = False
    ProgressBar1.Minimum = 0
    ProgressBar1.Maximum = 50
    ProgressBar1.Value = 0

    End Sub
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    ProgressBar1.Value += 1
    If ProgressBar1.Value = ProgressBar1.Maximum Then
    ProgressBar1.Value = 0
    End If
    End Sub

    Private Sub Button1_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.MouseEnter

    Timer1.Enabled = True
    ProgressBar1.Value = 0


    End Sub

    Private Sub Button1_MouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.MouseLeave
    Timer1.Enabled = False
    End Sub

    Grazie per l'aiuto sono disperato è per la tesi!!!!

  4. #4
    Originariamente inviato da a_s_roma
    Il linguaggio è visual basic però non so se si riferisce a c++ e poi non sono ferratissimo
    Eh? Cosa c'entra adesso il C++?
    Comunque se vuoi che venga mostrato il form2 al termine del caricamento ti basta modificare Timer1_Tick in questo modo:
    codice:
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        ProgressBar1.Value += 1
        If ProgressBar1.Value = ProgressBar1.Maximum Then
            ProgressBar1.Value = 0
            Timer1.Enabled = False 'se no si va avanti all'infinito...
            form2.Show() 'o form2.ShowDialog(), se vuoi che il form venga visualizzato in modalità modale
        End If
    End Sub
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315

    Moderazione

    Dimmi una cosa: sei arrivato alla tesi senza nemmeno sapere in che linguaggio stai programmando? I miei pregiudizi sull'università sono sempre più fondati...

    Quello è VB!


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non penso (non voglio pensare) che sia per una tesi universitaria ... forse per una tesina di maturita' ...

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    15
    Volevo rispondere a quelli che prendono in giro, che io studio ingegneria elettronica e non informatica in + non ho mai programmato in vita mia perchè non mi è mai servito.

    Per chi vuole ancora aiutarmi ho ancora bisogno di aiuto, praticamente il discorso è un po + complicato, ho + di un bottone e questi bottoni mi devono portare a diversi form, se metto quel comando ciò mi manderebbe solo nel form2, quindi avrei bisogno di capire che codice devo mettere per fare ciò. Vi ringrazio in anticipo.

  8. #8
    Freno, frizione, retro, acceleratore, freno, frizione, prima; ricominciamo daccapo .
    Allora, spiegami se ho capito bene: hai un form con una serie di pulsanti e una barra di avanzamento; a ciascun pulsante corrisponde un form differente da aprire. Quando l'utente "appoggia" il mouse su un pulsante la barra di avanzamento inizia a "riempirsi"; quando la barra di avanzamento è "piena" si apre il form corrispondente al pulsante su cui l'utente sta tenendo "appoggiato" il mouse, altrimenti, se l'utente sposta il mouse, la barra di avanzamento viene resettata. Ho capito bene? Ah, un'ultima cosa: i form devono essere visualizzati come modali (ossia, l'utente può lavorare solo sul form appena aperto fino a quando non viene chiuso) o no (ossia, l'utente può lavorare sia sul form appena aperto che su tutti gli altri)?
    P.S.: ancora non ho capito cosa c'entrava il C++... :rollo:
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    15
    Per quanto riguarda la pulsantiera è tutto come dici tu cioè quando il mouse va su un pulsante la barra si carica e quando è piena apre il form corrispondente se esce dal pulsante si azzera. Guarda io vorrei fare (sempre se è una cosa veloce) che quando si apre un form gli altri si chiudono, tutto questo sempre se non è lento a farlo. In pratica mi serve un interfaccia + veloce possibile.
    Ti ringrazio

  10. #10
    Allora puoi riciclare quasi completamente il codice postato in precedenza...
    codice:
    Public Class Form1
        Private formToShow As Form
        Dim value As String
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Timer1.Interval = 30
            Timer1.Enabled = False
            ProgressBar1.Minimum = 0
            ProgressBar1.Maximum = 50
            ProgressBar1.Value = 0
            Button1.Tag = form2
            Button2.Tag = form3
            Button3.Tag = form4
            'altri eventuali assegnamenti dello stesso tipo
        End Sub
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            ProgressBar1.Value += 1
            If ProgressBar1.Value = ProgressBar1.Maximum Then
                ProgressBar1.Value = 0
                Timer1.Enabled = False
                form2.Close()
                form3.Close()
                form4.Close()
                'altre eventuali chiusure di form
                formToShow.Show()
            End If
        End Sub
    
        Private Sub Buttons_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.MouseEnter, Button2.MouseEnter, Button3.MouseEnter 'eventualmente anche altri Handles dello stesso genere
    
            Timer1.Enabled = True
            ProgressBar1.Value = 0
            formToShow = DirectCast(sender, Control).Tag
    
        End Sub
    
        Private Sub Button1_MouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.MouseLeave, Button2.MouseLeave, Button3.MouseLeave 'c.s. 
            Timer1.Enabled = False
        End Sub
    End Class
    Non l'ho collaudato ma dovrebbe andare.
    Amaro C++, il gusto pieno dell'undefined behavior.

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.