Incrémenter une ProgressBar à partir d'une autre Class

Signaler
Messages postés
283
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010
-
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
-
Bonjour a tous

Voila je voudrais pouvoir incrémenter ma progressbar à partir d'une autre classe que Form1. Est-ce que quelqu'un pourrai me dire comment faire?

Merci

7 réponses

Messages postés
74
Date d'inscription
lundi 23 mai 2005
Statut
Membre
Dernière intervention
5 décembre 2008

heu jai pas le meme probleme, mais cest la meme paniere de résoudre.. va voir ca :
http://www.csharpfr.com/infomsg/PASSER-VARIABLES-ENTRE-FORMS-6_715233.aspx

je pense qu'il te suffi de mettre un variable que tu fais passer dans lautre form.. mais j arrive pas pr le moment..
Messages postés
74
Date d'inscription
lundi 23 mai 2005
Statut
Membre
Dernière intervention
5 décembre 2008

va voir ca : http://www.csharpfr.com/infomsg/VARAIBLES-GLOBALES-SUR-TOUT-PROJET-6_717500.aspx

moi ca ma beaucoup aidé, je pense meme que je vais y arriver la .. ^^
++
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
20
Lever des evenements est beaucoup plus propres.

::|The S@ib|:: MVP C#.NET
Messages postés
283
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010
3
Salut merci pour votre aide

TheSaib est ce que tu pourrai me donner un exemple ou un line vers un tuto pour le evenement parce que je m'y connais pas du tout

merci
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
20
dans ta classe qui appele l'increment de la toobar tu définies des events

Quadn tu instancies cette classe tu t'abonnes a cet evenements.

Maclasse cls = new Maclasse();
cls.Increment += new EventHandler(this.DoIncrement);
cls.Show();

Public void DoIncrement(object sender, System.EventArgs e)
{
this.ProgressBar.Value ++;
}

Dans MaClasse :

public event EventHandler Increment;
private void MonTraitement()
{
//Ici ton code
//Puis
if (Increment != null)
Increment (this, EventArgs.Empty)
}

Quelque chose dans ce genre là.

::|The S@ib|:: MVP C#.NET
Messages postés
283
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010
3
Salut theSaib

Voila j'ai fai comme tu ma expliqué mais avec une textBox voila mon code

<hr>
public
partial
class
Form1 :
Form
{

   private
void button1_Click(
object sender,
EventArgs e)
   { 
      System.Threading.
ThreadPool.QueueUserWorkItem(
new System.Threading.
WaitCallback(
this.Launch),
null);
   }

   private
void Launch(
object arg)
   {
         
this.Invoke(
new
LaunchBTN(EnabledBtn),
false);

         MaClass Sn =
new
MaClass();
         Sn.Evt +=
new
EvtEventHandler(Sn_Evt);

         this.Invoke(
new
LaunchBTN(EnabledBtn),
true);
   }

   private
void Sn_Evt(
object sender,
EvtEventArgs e)
   {
         TextBox.Text = e.Text;
   }

}//fin de Form1

public

class
MaClass
{
      public

event
EvtEventHandler Evt =
null;

      private

void OnEvt(
EvtEventArgs e)
      {
            
if (
this.Evt !=
null)
            {
this.Evt(
this, e); }
      }

   public

void DIRFiles()
   {      //CODE
         
this.OnEvt(
new
EvtEventArgs(files[i].Name));
         //CODE
   }
}//FIN DE MaClass

public
delegate
void
EvtEventHandler(
object sender,
EvtEventArgs e);

public
class
EvtEventArgs
{
      
private
string text =
null;
      
public
string Text
      {
            
get {
return
this.text; }
      }
      
      
public EvtEventArgs(
string info)
      {
            
this.text = info;
      }
}//Fin de EvtEventArgs

<hr>En compilant je n'ai pa d'erreur mais lorsque je lance mon appli j'ai cette erreur

"Cross-thread operation not valid: Control 'AffFile' accessed from a thread other than the thread it was created on."

est ce que quelqu'un pourrai m'expliquer comment debugger cette erreur

merci
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Salut,

Vas voir ici pour ton probleme

Mx
MVP C#