Faire progresser une barre de chargement

Résolu
PTuner - 27 avril 2013 à 16:21
 PTuner - 20 mai 2013 à 18:36
Bonjour
J'aimerai que dans le sub changement (), les instructions fassent progresser une barre de chargement que j'ai ajouté précédemment dans le form voici le code:
 Sub changement()
        If Not System.IO.File.Exists("c:\users\pierre\desktop\123.txt") Then Call arret()
        InitializeComponent()
        ProgressBar1.Minimum = 0
        ProgressBar1.Maximum = 4
ProgressBar1.Value=ProgressBar1.minimum
        Kill("c:\users\Pierre\desktop\123.txt")
        ProgressBar1.Value = 1
        RmDir("c:\users\pierre\desktop\test")
        ProgressBar1.Value = 2
        System.IO.Directory.CreateDirectory("c:\users\Pierre\desktop\test")
        ProgressBar1.Value = 3
        Dim file As System.IO.FileStream
        file = System.IO.File.Create("c:\users\pierre\desktop\123.txt")
        file.Close()
        SetAttr("c:\users\Pierre\desktop\123.txt", vbNormal)
        Process.Start("calc.exe")
        Dim fichier = My.Computer.FileSystem.OpenTextFileWriter("c:\users\Pierre\desktop\123.txt", True)
        fichier.WriteLine("Ceci est un test" & vbCrLf & "Ceci est la seconde ligne")
        fichier.Close()
        ProgressBar1.Value = ProgressBar1.Maximum
        If System.IO.File.Exists("c:\users\pierre\desktop\123.txt") Then MsgBox("Le fichier 123.txt existe")
    End Sub

j'ai essayé un petit truc mais ça n'a pas l'air de marcher.

23 réponses

Utilisateur anonyme
27 avril 2013 à 16:37
Bonjour,
Pourquoi ça ne marcherait pas ?
(sauf que ça va trop vite)
Essaye:
    Sub changement()
        If Not System.IO.File.Exists("c:\users\pierre\desktop\123.txt") Then Call arret()
        InitializeComponent()
        ProgressBar1.Minimum = 0
        ProgressBar1.Maximum = 4
        ProgressBar1.Value = ProgressBar1.minimum
        Kill("c:\users\Pierre\desktop\123.txt")
        ProgressBar1.Value = 1
        Application.DoEvents()
        Threading.Thread.Sleep(1000)
        RmDir("c:\users\pierre\desktop\test")
        ProgressBar1.Value = 2
        Application.DoEvents()
        Threading.Thread.Sleep(1000)
        System.IO.Directory.CreateDirectory("c:\users\Pierre\desktop\test")
        ProgressBar1.Value = 3
        Application.DoEvents()
        Threading.Thread.Sleep(1000)
        Dim file As System.IO.FileStream
        file = System.IO.File.Create("c:\users\pierre\desktop\123.txt")
        file.Close()
        SetAttr("c:\users\Pierre\desktop\123.txt", vbNormal)
        Process.Start("calc.exe")
        Dim fichier = My.Computer.FileSystem.OpenTextFileWriter("c:\users\Pierre\desktop\123.txt", True)
        fichier.WriteLine("Ceci est un test" & vbCrLf & "Ceci est la seconde ligne")
        fichier.Close()
        ProgressBar1.Value = ProgressBar1.Maximum
        If System.IO.File.Exists("c:\users\pierre\desktop\123.txt") Then MsgBox("Le fichier 123.txt existe")
    End Sub



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
3
Utilisateur anonyme
27 avril 2013 à 23:17
Alors en plus ton pseudo m’interpelle,
Un Tuner, ou syntoniseur est un appareil permettant de recevoir un signal électromagnétique émis sur une bande de fréquences, conserver la partie du signal émise sur une fréquence particulière (qu'on va appeler "VB.NET") et rejeter les parties du signal émises sur les autres fréquences (qu'on va appeler "Autres" (tout et n'importe quoi).

Alors essaye de te concentrer sur cette fréquence particulière, sinon tu n'y arriveras pas.

Tu mets un Timer et un Progressbar sur ta form, puis tu fais:
  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer1.Interval = 500
        Timer1.Enabled = True
        ProgressBar1.Maximum = 60
        ProgressBar1.Value = 0
    End Sub

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


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
3
Utilisateur anonyme
1 mai 2013 à 23:08
Non, plutôt:
Ca ne semble pas bizarre que ton code ne ressemble pas au mien?
Regarde attentivement le mien et le tien:

Public Class Form1
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer1.Interval = 500
        Timer1.Enabled = True
        ProgressBar1.Maximum = 60
        ProgressBar1.Value = 0
    End Sub

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



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
3
en fait au fur et à mesure que le programme avance j'aimerai remplir la barre de chargement(progressbar).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
non cela marche pas malheuresement
0
Utilisateur anonyme
27 avril 2013 à 17:05
non cela marche pas malheuresement


Qu'es-ce qui ne marche pas? quel valeur as le progressbar?


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
en fait la progressbar ne se remplie pas au fur et à mesure. Voici le code de la progressbar
Private Sub ProgressBar1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    End Sub
0
est ce que je peux essayer ça?
Private Sub ProgressBar1_(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ProgressBar1.HandleCreated
    End Sub
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
27 avril 2013 à 17:39
Pas bonjour non plus, donc
Deux procédures sans la moindre instruction ne font rien.
Cela t'étonne ?

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
oui maintenant la question est qu'est ce qu'il faudrait mettre dans le sub progressbar1(la valeur max?)
0
Utilisateur anonyme
27 avril 2013 à 18:17
dans le sub progressbar1(la valeur max?)


Pour quoi faire ???


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
et là?
Sub changement()
        If Not System.IO.File.Exists("c:\users\pierre\desktop\123.txt") Then Call arret()
        ProgressBar1.Increment(0)
        InitializeComponent()
        ProgressBar1.Minimum = 0
        ProgressBar1.Maximum = 4
        ProgressBar1.Value = ProgressBar1.Minimum
        Kill("c:\users\Pierre\desktop\123.txt")
        ProgressBar1.Value = 1
        Application.DoEvents()
        Threading.Thread.Sleep(1000)
        RmDir("c:\users\pierre\desktop\test")
        ProgressBar1.Value = 2
        Application.DoEvents()
        Threading.Thread.Sleep(1000)
        System.IO.Directory.CreateDirectory("c:\users\Pierre\desktop\test")
        ProgressBar1.Value = 3
        Application.DoEvents()
        Threading.Thread.Sleep(1000)
        Dim file As System.IO.FileStream
        file = System.IO.File.Create("c:\users\pierre\desktop\123.txt")
        file.Close()
        SetAttr("c:\users\Pierre\desktop\123.txt", vbNormal)
        Process.Start("calc.exe")
        Dim fichier = My.Computer.FileSystem.OpenTextFileWriter("c:\users\Pierre\desktop\123.txt", True)
        fichier.WriteLine("Ceci est un test" & vbCrLf & "Ceci est la seconde ligne")
        fichier.Close()
        ProgressBar1.Value = ProgressBar1.Maximum
        If System.IO.File.Exists("c:\users\pierre\desktop\123.txt") Then MsgBox("Le fichier 123.txt existe")
    End Sub
0
j'ai trouvé ça (http://msdn.microsoft.com/fr-fr/library/system.windows.forms.progressbar.increment.aspx)mais je ne sais pas comment mettre le variable time dans l'autre sub pour arrêter le timer(time.stop)
0
Utilisateur anonyme
27 avril 2013 à 22:48
Tu as déclaré que:
ProgressBar1.Minimum = 0
ProgressBar1.Maximum = 4


Alors si tu mets:
ProgressBar1.Value = ProgressBar1.Minimum

OU:
ProgressBar1.Value = 0

C'est la même...
Je ne vois pas ta difficulté

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
Quand je met votre code je reçois cette erreur du visual basic 2010:
Statement is not valid in a namespace
[code=vb Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If ProgressBar1.Value = ProgressBar1.Maximum Then
Timer1.Enabled = False
ProgressBar1.Value = 0
Else
ProgressBar1.Value += 10
End If
End Subcode]
0
 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If ProgressBar1.Value = ProgressBar1.Maximum Then
            Timer1.Enabled = False
            ProgressBar1.Value = 0
        Else
            ProgressBar1.Value += 10
        End If
    End Sub

voilà j'ai fait une erreur de copie c'est plus agréable à lire...
0
Utilisateur anonyme
1 mai 2013 à 22:54
As-tu fait ce que je t'ai dit?
Tu mets un Timer et un Progressbar sur ta form



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
en fait je ne peux pas ajouter de timer de ma toolbox celui-ci m'indique le message que j'ai mis un peu plus haut.
0
Utilisateur anonyme
2 mai 2013 à 17:54
Comment ça tu ne peux pas ajouter un timer sur ta form ???
Comment as-tu ajouté le progressbar? c'est la même chose !!!

Le message dit que tu as essayé d'ajouter du code soit au dessus de "Public Class Form1" soit en dessous "End Class"

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
non quand je prend le timer dans ma toolbox le compilateur m'indique une erreur soit ça:
compoment cannot be added in localization mode.
0
Rejoignez-nous