Forum Clubic

C# - Barre de progression

Salut tout le monde
J’aimerais savoir si il y a la possibilité d’afficher une ProgressBar par exemple pendant une connection à MySQL (ProgressBar infinie biensur) ou tout autre actiohn relativement longue, puis lorsque cette action est fini, masquer la ProgressBar.
J’ai essayé pas mal de trucs dont créer un thread pdt que la connection est en cours…
Mais, toujours rien, la barre ne s’affiche pas…
Est ce que vous pourirez me conseiller a ce sujet, sa sré symath :wink:
merci
@++
Jean ed

Je ne sais pas si je peux t’être d’un grand secoure. Mais tu pourrais poster ton code (même si il marche pas).
Ca nous permettra de t’aider à rectifier.

http://www.codeproject.com/cs/miscctrl/#Progress+controls

voila le code :


private void button1_Click(object sender, EventArgs e)
{
    ProgressBar1.visible=true;
    mysql_connect("Server=********;Database=*******;User   ID=********;Password=********;");
    ProgressBar1.visible=false;
}


private void button1_Click(object sender, EventArgs e)
{
    ProgressBar1.visible=true;
Application.DoEvents();
    mysql_connect("Server=********;Database=*******;User   ID=********;Password=********;");
    ProgressBar1.visible=false;
}

une Application.DoEvents(); ça devrait suffir ou this.Refresh();

Merci, c’est super sympath, je vais voir tout de suite si sa marche :slight_smile:

Sa marche mais seulement a moitié…
La prgressBar s’affiche bien mais mais ce qui devrais s’afficher dedans, je m’explique : Pendant la connection Mysql, le programme semble etre planté donc plus rien ne se passe et la progressBar ne “s’incremente” pas comme elle devrai le faire.
Qu’est ce que vous me conseillez de faire, mettre la connection SQL dans un Thread, mais dans ce cas, comment savoir si la connection sql a été effectuée (pour masquer la barre et aborder le thread) :neutre:

Merci de répondre :wink:

qu’est qui fait avancer le progressbar ?!

C’est une progressBar infinie (style=marquee)

tu peux

  • créer une class avec des events …
  • afficher le progressbar
  • lancer la fonction connexion de la class dans un thread
  • une fois fini lancer un event …
    par exemple :
    cMysql mysql = new cMysql();
    mysql.ConnexionReussi += … // event
    _monThread = new Thread(new ThreadStart(mysql.connexion));
    _monThread.Start();

sinon y a le composant BackgroundWorker … et comme event il a RunWorkerCompleted …

Et bé, moi qui pensait que du bien du C# et notamment la simplicité du code … en WINAPI à l’ancienne, ça se torche en 5 minutes :slight_smile:

PS : il n’y aucun trollage subliminale, ce post est sincère :jap:

ben non c’est super simple … :ane:

Je n’ai pas dit que c’était dur mais que comparativement au, par exemple, C/C++ avec les WINAPI, ça l’est encore plus sachant que, pour moi et ce que j’en avis comme idée, c’est que le C# est la pour simplifier la tache du programmeur.
D’où mon étonnement pour une tache qui devrait être simple à implémenter :neutre:

Un exemple concret serait necessaire stp

certaines choses sont en effet énormément lourdes, mais d’autres npn :wink:

Perosnne ne pourrais m’aider, par exemple par msn ?

Silvouplait :sweet: :sweet: :sweet: :sweet: :sweet: :sweet: :sweet: :sweet: :sweet: :sweet: :sweet: :sweet: :sweet: :sweet: :sweet: :sweet: :sweet:

perosnne, c’est triste…

re ^^

il y a bcp d’exemple et de tuto sur le net :wink:
http://www.c2i.fr/code.aspx?IDCode=612
http://glarde.developpez.com/dotnet/bgworker/cs/

Je te remercie :wink: