Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1084 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Progressbar de style "marquee" : ca ne veut pas fonctionner :/

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Progressbar de style "marquee" : ca ne veut pas fonctionner :/

n°1999077
SICKofitAL​L
misanthrope
Posté le 04-06-2010 à 11:54:52  profilanswer
 

Salut à tous
 
je dois faire un petit projet en C# et j'ai une action qui prend un temps que je ne peux pas derteminer à l'avance.
J'ai donc pensé mettre un petit ProgressBar qui va bien en mode Marquee (ca tournera sur des machines à base de XP et plus).
Or si j'ai bien compris le système, ce style de ProgressBar fonctionnerait "tout seul" jusqu"à ce qu'on lui dise de s'arreter, or dans mon cas il ne fait rien :/
 
A priori, le code suivant suffirait pour lancer la chose, mais sans succès :

Code :
  1. progressBar.Style = ProgressBarStyle.Marquee;
  2. // pour démarrer
  3. progressBar.MarqueeAnimationSpeed = 10;
  4. // pour arreter
  5. progressBar.MarqueeAnimationSpeed = 0;


 
Help ? :hello:


---------------
We deserve everything that's coming...
mood
Publicité
Posté le 04-06-2010 à 11:54:52  profilanswer
 

n°1999086
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 04-06-2010 à 12:42:25  profilanswer
 

pour arréter :
 
progressBar.Style = ProgressBarStyle.Continuous;
 
pas besoin d'utiliser MarqueeAnimationSpeed pour arréter.


---------------
J'ai un string dans l'array (Paris Hilton)
n°1999094
SICKofitAL​L
misanthrope
Posté le 04-06-2010 à 13:08:22  profilanswer
 

Moi j'aimerais bien pouvoir l'arreter, mais il veut même pas démarrer [:spamafote]


---------------
We deserve everything that's coming...
n°1999097
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 04-06-2010 à 13:20:06  profilanswer
 

chez moi, ce code fonctionne très bien :  
(une form avec un progress en haut, et 2 boutons Start et Stop en bas) :
 

Code :
  1. using System;
  2. using System.Windows.Forms;
  3.  
  4. namespace pgbar
  5. {
  6.    public partial class Form1 : Form
  7.    {
  8.        public Form1()
  9.        {
  10.            InitializeComponent();
  11.            progressBar1.MarqueeAnimationSpeed = 30;
  12.            
  13.        }
  14.  
  15.        private void button1_Click(object sender, EventArgs e)
  16.        {
  17.            // bouton Start
  18.            progressBar1.Style = ProgressBarStyle.Marquee;
  19.        }
  20.  
  21.        private void button2_Click(object sender, EventArgs e)
  22.        {
  23.            // bouton Stop
  24.            progressBar1.Style = ProgressBarStyle.Continuous;
  25.        }
  26.    }
  27. }


---------------
J'ai un string dans l'array (Paris Hilton)
n°1999098
SICKofitAL​L
misanthrope
Posté le 04-06-2010 à 13:36:36  profilanswer
 

Oué ben j'ai pareil, sauf que chez moi ca donne rien, top chelou ca :/
 
Jvais tester sur une autre bécane pour voir, sans tte l'install de VS2010 express.


---------------
We deserve everything that's coming...
n°1999105
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 04-06-2010 à 13:48:04  profilanswer
 

par contre, t'as vu que j'avais défini le MarqueeAnimationSpeed dans le constructeur, et que je faisais démarrer la pgbar avec le ProgressBarStyle.Marquee ? toi tu fais l'inverse.


---------------
J'ai un string dans l'array (Paris Hilton)
n°1999109
SICKofitAL​L
misanthrope
Posté le 04-06-2010 à 14:14:12  profilanswer
 

Oui mais en fait c'est comme toi que j'avais pondu mon truc au départ, car ca me semblait plus "logique". Ensuite, j'avais inversé pour voir si ca changait qqch, mais sans succès...
 
Jvais refaire un projet from scratch pour tester ca, car je vois vraiment pas d'où ca peut venir. Merci en tout cas :)


---------------
We deserve everything that's coming...
n°1999243
SICKofitAL​L
misanthrope
Posté le 05-06-2010 à 09:50:59  profilanswer
 

Pour info, j'ai refait une simple fenetre avec juste ce controle là sur ma machine au taf (VS2010 express) et toujours pas de marquee...
J'ai refait la même chose à la maison, mais sous VS2008, et là bien sûr aucun soucis.
Donc je pencherais pour un soucis quelconque avec mon install au taf.
 
Quoi qu'il en soit, merci :)


---------------
We deserve everything that's coming...
n°1999260
moi23372
Posté le 05-06-2010 à 13:11:48  profilanswer
 

de mémoire, je sais que sous XP, sur certaines machines, ça ne marche pas.  
Ce que je suis sûr, c'est que sur XP Home Edition, ça ne marche pas. Mais j'ai déjà vu des XP Pro ou ça ne marchait pas non plus.  
Donc ce style la, à éviter.


---------------
quand un homme raisonne mal c'est qu'il n'a pas les données pour raisonner mieux (diderot)
n°1999263
SICKofitAL​L
misanthrope
Posté le 05-06-2010 à 13:38:19  profilanswer
 

J'ai vu sur MSDN que ca ne fonctionnait que sur les XP avec les styles visuels d'activés. Or sur ma machine du taf, sur XP donc, j'ai bien les styles activés, par contre ce n'est pas celui par défaut, il s'agit d'un thème "custom" (un bricopack pour être précis :o ).
Ceci expliquant ptêtre celà, je vais désactiver ca ASAP pour tester :)


---------------
We deserve everything that's coming...
mood
Publicité
Posté le 05-06-2010 à 13:38:19  profilanswer
 

n°1999352
Tamahome
⭐⭐⭐⭐⭐
Posté le 06-06-2010 à 14:33:14  profilanswer
 

SICKofitALL a écrit :

Oui mais en fait c'est comme toi que j'avais pondu mon truc au départ, car ca me semblait plus "logique". Ensuite, j'avais inversé pour voir si ca changait qqch, mais sans succès...
 
Jvais refaire un projet from scratch pour tester ca, car je vois vraiment pas d'où ca peut venir. Merci en tout cas :)


 
La programmation c'est pas mettre des trucs au pif en espérant que ca marche... Soit tu sais ce que tu fais, soit tu ne sais pas... J'ai l'impression que tu es dans le 2eme cas.


---------------
Hobby eien /人◕ ‿‿ ◕人\
n°1999432
SICKofitAL​L
misanthrope
Posté le 07-06-2010 à 07:40:22  profilanswer
 

Tamahome a écrit :


 
La programmation c'est pas mettre des trucs au pif en espérant que ca marche... Soit tu sais ce que tu fais, soit tu ne sais pas... J'ai l'impression que tu es dans le 2eme cas.


Ah bon ???? Et moi qui était persuadé qu'il s'agissait de mélanger tout et n'importe quoi, puis de cliquer sur un bouton et de voir ce que ca donne. Comme un apprenti sorcier quoi .....  :pt1cable:  
Tu sais, lorsque je mets en production mes programmes, mes chefs s'attendent à ce que ca marche, or à priori c'est le cas, et ce depuis une bonne dizaine d'années... Je pense que si je ne savais pas ce que je fais, ca ferait longtemps que je me serais fait viré de mon taf.
Donc t'es mignon, mais sur un forum, soit on a une réponse constructive à donner et on la poste, soit on ne l'a pas et on évite alors d'écrire des trucs à la con. "J'ai l'impression que tu es dans le 2eme cas".
:hello:

Message cité 1 fois
Message édité par SICKofitALL le 07-06-2010 à 09:18:42

---------------
We deserve everything that's coming...
n°1999481
SICKofitAL​L
misanthrope
Posté le 07-06-2010 à 10:58:41  profilanswer
 

Pour info :
 
il s'agit bel et bien d'un soucis avec le thème visuel appliqué sur XP.
En remettant celui par défaut (le bleu), le marquee est parfaitement fonctionnel, que ce soit avec VS2008/.NET 3.5 et VS2010/.NET 4.0.
J'ai essayé avec d'autres thèmes visuels pour tester, et en fait ca depend de ces derniers, soit ils semblent implémenter cette fonction, soit pas :o
Quoi qu'il en soit, j'ai revu mon idée d'origine et mit en place un ProgressBar en Continuous, tout ce qu'il y a de plus classique.
 
Merci à tous :)


---------------
We deserve everything that's coming...
n°2069035
Tamahome
⭐⭐⭐⭐⭐
Posté le 09-04-2011 à 09:37:19  profilanswer
 

SICKofitALL a écrit :

Ensuite, j'avais inversé pour voir si ca changait qqch, mais sans succès...


 

SICKofitALL a écrit :


Ah bon ???? Et moi qui était persuadé qu'il s'agissait de mélanger tout et n'importe quoi, puis de cliquer sur un bouton et de voir ce que ca donne. Comme un apprenti sorcier quoi .....  :pt1cable:


 
C'est pas moi qui le dit  [:elessar53] Ou alors t'es shyzo, et vous êtes plusieurs personnes dans ta tête  [:calahad]

n°2069090
SICKofitAL​L
misanthrope
Posté le 10-04-2011 à 03:09:54  profilanswer
 

Tamahome a écrit :


 
C'est pas moi qui le dit  [:elessar53] Ou alors t'es shyzo, et vous êtes plusieurs personnes dans ta tête  [:calahad]


T'es migon, mais déterrer un topic d'ya un an juste pour répondre n'imp, perso ca me laisse perplexe :p


---------------
We deserve everything that's coming...
n°2069098
Tamahome
⭐⭐⭐⭐⭐
Posté le 10-04-2011 à 09:47:21  profilanswer
 

SICKofitALL a écrit :


T'es migon, mais déterrer un topic d'ya un an juste pour répondre n'imp, perso ca me laisse perplexe :p


 
Désolé j'étais occupé sur d'autres topics plus importants que le tien  [:clooney6], mais je tenais à répondre tout de même. [:clooney17]

n°2069138
SICKofitAL​L
misanthrope
Posté le 10-04-2011 à 18:32:27  profilanswer
 

Merci de m'informer de ta vie passionnante, passons à autre chose maintenant :D


---------------
We deserve everything that's coming...
n°2069596
Tamahome
⭐⭐⭐⭐⭐
Posté le 12-04-2011 à 23:03:53  profilanswer
 

tu demandes, je te réponds, simple politesse.

n°2074785
NazOok
Posté le 09-05-2011 à 15:20:42  profilanswer
 

Bonjour,  
 
Je sais pas si vous regardé encore ce sujet mais j'ai un probleme identique que le votre avec ma progressBar, enfin meme peut etre pire car elle disparait et réapparé a la fin de mon chargement, donc elle ne sert a rien du tout...
Alors j'ai essayé en créant un nouveau projet, j'ai juste placé 2 bouttons et une progressBar comme votre exemple plus haut, et la NiqueL !!
Alors je ne comprends pas..
 
Voici mon code :

Code :
  1. private void AppliMainForm_Load(object sender, EventArgs e)
  2.         {
  3.             XMLVilles ChL = new XMLVilles();
  4.             ChL.ChargementListe(listVille);
  5.             progressBar1.MarqueeAnimationSpeed = 20;
  6.         }


Code :
  1. private void listVille_SelectedIndexChanged(object sender, EventArgs e)
  2.         {
  3.             progressBar1.Style = ProgressBarStyle.Marquee;
  4.             lblArrondissement.Visible = false;
  5.             cbBoxArrondissement.Visible = false;
  6.             lblStation.Visible = false;
  7.             cbBoxStation.Visible = false;
  8.             cbBoxStation.Text = "";
  9.             cbBoxStation.Items.Clear();
  10.             cbBoxArrondissement.Text = "";
  11.             cbBoxArrondissement.Items.Clear();
  12.             //progressBar1.Visible = true;
  13.             XmlDocument doc = new XmlDocument();
  14.             XMLVilles ville = new XMLVilles();
  15.             string select = this.listVille.Text;
  16.             string url = ville.RechercheUrl(select) + "/service/carto";
  17.             doc.Load(url);
  18.             List<String> mesArrondissements = new List<String>();
  19.             XmlNodeList listeNoeudsArrondissements = doc.GetElementsByTagName("arrondissement" );
  20.             if (listeNoeudsArrondissements.Count > 1)   //Savoir si il y a des arrondissements.
  21.             {
  22.                 ville.ChrgtCbBoxArrond(url, cbBoxStation, cbBoxArrondissement);
  23.                 cbBoxArrondissement.Visible = true;
  24.                 lblArrondissement.Visible = true;
  25.             }
  26.             else
  27.             {
  28.                 ville.ChrgtCbBoxSansArrond(url, cbBoxStation);
  29.                 cbBoxStation.Visible = true;
  30.                 lblStation.Visible = true;
  31.             }
  32.             progressBar1.Style = ProgressBarStyle.Continuous;
  33.         }


 
Durant le temps ou cette barre doit charger, au contraire elle disparait alors je ne comprend pas....  
Aidé moiii :'(

n°2076837
Tamahome
⭐⭐⭐⭐⭐
Posté le 18-05-2011 à 14:56:11  profilanswer
 

ben normal... Tu dois mettre ton traitement dans un thread a part et laisser le thread principal a l'UI. Utilise un background worker par exemple...

n°2076930
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 18-05-2011 à 21:35:02  profilanswer
 

+1, et surtout ne pas accéder à la progressbar par le background worker directement, mais passer par sa méthode Invoke()

Message cité 1 fois
Message édité par Harkonnen le 18-05-2011 à 21:35:13

---------------
J'ai un string dans l'array (Paris Hilton)
n°2076954
NazOok
Posté le 18-05-2011 à 22:55:38  profilanswer
 

Harkonnen a écrit :

+1, et surtout ne pas accéder à la progressbar par le background worker directement, mais passer par sa méthode Invoke()


 
Oui je me suis penché sur l'histoire de ces Threads mais j'ai toujours un problème, enfin le même problème ^^
 

Code :
  1. private Thread myThread;
  2.         private delegate void IncreaseProgressBarValueDelegate();
  3.         private IncreaseProgressBarValueDelegate invokeDelegue;
  4.         private ProgressBarStyle pgbS=ProgressBarStyle.Continuous;
  5.         public AppliMainForm()
  6.         {
  7.             InitializeComponent();
  8.             invokeDelegue = new IncreaseProgressBarValueDelegate(this.IncreaseProgressBarValueMethode);
  9.             myThread = new Thread(new ThreadStart(ThreadLaunch));
  10.             myThread.Start();
  11.             myThread.Suspend();
  12.             this.progressBar1.MarqueeAnimationSpeed = 20;
  13.         }
  14.         private void listVille_SelectedIndexChanged(object sender, EventArgs e)
  15.         {
  16.             myThread.Resume();
  17.             // code .....
  18.             doc.Load(url);
  19.                
  20.            //code....
  21.             myThread.Suspend();
  22.         }
  23.  
  24.         private void ThreadLaunch()
  25.         {
  26.             while (true)
  27.             {
  28.                 pgbS = ProgressBarStyle.Marquee;
  29.                 this.progressBar1.Invoke(this.invokeDelegue);
  30.             }
  31.         }
  32.         private void IncreaseProgressBarValueMethode()
  33.         {
  34.             this.progressBar1.Style = this.pgbS;
  35.         }


 
 
Ma barre se charge lors de la fin du chargement... je ne comprends pas mon erreur !  
Pouvez vous m'aider svp :$

n°2076955
NazOok
Posté le 18-05-2011 à 22:57:41  profilanswer
 

Parcontre elle ne disparait plus ^^ mais ce n'est pas ce que je veux :(

n°2077155
Tamahome
⭐⭐⭐⭐⭐
Posté le 19-05-2011 à 15:39:05  profilanswer
 

T'emmerdes pas avec un Thread de base, prends le background worker, il contient déjà les évenements qui vont bien (comme le report d'avancement pour faire évoluer ta progress bar)...
 
Arpès tu peux aussi réinventer la roue et refaire la meme chose avec un Thread...

n°2077200
NazOok
Posté le 19-05-2011 à 18:09:28  profilanswer
 

D'accord et bien je vais voir sa :)

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Progressbar de style "marquee" : ca ne veut pas fonctionner :/

 

Sujets relatifs
Style qui disparait (ready, jquery)Mon image ne veut s'afficher
Appliquer un style à un élément parent au survol d'un enfant (CSS)Problème feuille de style CSS
[Résolu] Perte de feuille de style sur changement de pageprobleme avec marquee et w3c
Petit problème à corriger sur feuille de style cssApplication tardive feuille de style sous FF
Convertir inline CSS en règles ? Converts inline style into CSS rulesQuelques petites modifications à appliquer sur ma feuille de style CSS
Plus de sujets relatifs à : Progressbar de style "marquee" : ca ne veut pas fonctionner :/


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR