[Threads] Impossible depuis autre fonction
Résolu/Fermé
MoYoX
Messages postés
127
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
21 mars 2014
-
13 déc. 2012 à 15:17
MoYoX Messages postés 127 Date d'inscription jeudi 4 juin 2009 Statut Membre Dernière intervention 21 mars 2014 - 18 déc. 2012 à 13:31
MoYoX Messages postés 127 Date d'inscription jeudi 4 juin 2009 Statut Membre Dernière intervention 21 mars 2014 - 18 déc. 2012 à 13:31
A voir également:
- [Threads] Impossible depuis autre fonction
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Comment colorer une cellule excel en fonction du contenu d'une autre cellule ✓ - Forum Excel
- Fonction filtre excel n'existe pas - Forum Excel
6 réponses
L0ci
Messages postés
110
Date d'inscription
mardi 17 avril 2012
Statut
Membre
Dernière intervention
9 janvier 2013
30
13 déc. 2012 à 15:36
13 déc. 2012 à 15:36
Bonjour,
Le problème vient du fait que ton thread secondaire "creerListe()" essaie de modifier l'affichage, qui est géré par un autre thread.
Tu peux utiliser dans ton thread créerListe():
Le problème vient du fait que ton thread secondaire "creerListe()" essaie de modifier l'affichage, qui est géré par un autre thread.
Tu peux utiliser dans ton thread créerListe():
this.Invoke((MethodInvoker)delegate { //modifie les propriétés de ta liste });
MoYoX
Messages postés
127
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
21 mars 2014
3
13 déc. 2012 à 15:46
13 déc. 2012 à 15:46
Bonjour et merci,
Alors en fait je dois mettre mon "creerListe()" entre les accolades du this.invoke ?
Ou le contenu de mon creerListe() ?
Merci d'avance :
Alors en fait je dois mettre mon "creerListe()" entre les accolades du this.invoke ?
Ou le contenu de mon creerListe() ?
Merci d'avance :
L0ci
Messages postés
110
Date d'inscription
mardi 17 avril 2012
Statut
Membre
Dernière intervention
9 janvier 2013
30
13 déc. 2012 à 16:00
13 déc. 2012 à 16:00
Dans ta fonction créer liste, chaque modification sur l'interface doit être mise entre ces accolades.
ex:
ex:
function creerListe(){ this.Invoke((MethodInvoker)delegate { label1.text = "modification de mon label"; }); }
MoYoX
Messages postés
127
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
21 mars 2014
3
13 déc. 2012 à 16:03
13 déc. 2012 à 16:03
Okay !
Alors j'ai mis une ligne qui semblait poser problème:
dans les accolades, mais alors il me retourne une autre erreur:
(nâvré si j'ai l'air très néophyte, mais c'est carrément le cas :( )
Alors j'ai mis une ligne qui semblait poser problème:
Form.ActiveForm.Size = new System.Drawing.Size(dataGridView1.Width + 10, 1000);
dans les accolades, mais alors il me retourne une autre erreur:
Impossible d'appeler Invoke ou BeginInvoke sur un contrôle tant que le handle de fenêtre n'a pas été créé.
(nâvré si j'ai l'air très néophyte, mais c'est carrément le cas :( )
L0ci
Messages postés
110
Date d'inscription
mardi 17 avril 2012
Statut
Membre
Dernière intervention
9 janvier 2013
30
13 déc. 2012 à 16:19
13 déc. 2012 à 16:19
Ça veut dire qu'il essaie de modifier l'interface avant qu'elle ai été générée. Essaies de mettre l'appel de ta fonction dans l'evènement Shown de ton form.
MoYoX
Messages postés
127
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
21 mars 2014
3
13 déc. 2012 à 16:30
13 déc. 2012 à 16:30
Bon j'ai pas tout compris (surtout pas où trouver le Form1 Shown) mais j'essaierai demain de retour au boulot !
Merci je te tiens au courant !
Merci je te tiens au courant !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
MoYoX
Messages postés
127
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
21 mars 2014
3
14 déc. 2012 à 10:06
14 déc. 2012 à 10:06
Alors ! J'ai fait des recherches là dessus, je vois que ça a un rapport avec le "chargement" du projet, mais introuvable dans ma solution.
C'est censé être dans la class "Program" , ma "Form1" ou à un endroit que je ne connais pas ? :(
Merci en tous cas pour le coup de main.
C'est censé être dans la class "Program" , ma "Form1" ou à un endroit que je ne connais pas ? :(
Merci en tous cas pour le coup de main.
MoYoX
Messages postés
127
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
21 mars 2014
3
17 déc. 2012 à 16:38
17 déc. 2012 à 16:38
Bon bah ... je ne trouve vraiment pas :( même en fouillant sur le net rien à faire.
Je ne vois pas ce qu'est ce "shown", certains en parlent ouais mais ... sans plus.
J'ai essayé également de mettre ces bouts de code dans un "Form1_Load ...", mais c'est pareil.
De l'aide ?
D'avance merci !!
Je ne vois pas ce qu'est ce "shown", certains en parlent ouais mais ... sans plus.
J'ai essayé également de mettre ces bouts de code dans un "Form1_Load ...", mais c'est pareil.
De l'aide ?
D'avance merci !!
L0ci
Messages postés
110
Date d'inscription
mardi 17 avril 2012
Statut
Membre
Dernière intervention
9 janvier 2013
30
18 déc. 2012 à 11:19
18 déc. 2012 à 11:19
Salut,
Le shown est un évènement du form comme le load. Dans les propriétés de ton form il faut donc implémenter cet évènement.
Le shown est un évènement du form comme le load. Dans les propriétés de ton form il faut donc implémenter cet évènement.
MoYoX
Messages postés
127
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
21 mars 2014
3
18 déc. 2012 à 12:18
18 déc. 2012 à 12:18
Donc en gros, dans mon :
Je dois implémenter un nouveau EventHandler Shown (avec un += new ...) qui renvoie à ma fonction:
Par contre j'ai su le faire pour des changements de valeur dans mes datagrid etc ...
Par exemple:
mais je ne sais pas du tout comment ça marche pour le Shown :(
public Form1() { }
Je dois implémenter un nouveau EventHandler Shown (avec un += new ...) qui renvoie à ma fonction:
private void Form1_Shown(Object Sender, EventArgs e) { }
Par contre j'ai su le faire pour des changements de valeur dans mes datagrid etc ...
Par exemple:
dataGridView2.CellDoubleClick +=new DataGridViewCellEventHandler(dataGridView2_CellDoubleClick);
mais je ne sais pas du tout comment ça marche pour le Shown :(
MoYoX
Messages postés
127
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
21 mars 2014
3
18 déc. 2012 à 12:26
18 déc. 2012 à 12:26
J'ai essayé de mettre:
sous ma classe
dans les propriétés de mon Form1
et:
pour tester mais rien ne se passe, je ne dois pas être sur la bonne voie
public event EventHandler Shown;
sous ma classe
Form1.ActiveForm.Shown += new EventHandler(Form1_Shown);
dans les propriétés de mon Form1
et:
void Form1_Shown(Object Sender, EventArgs e) { MessageBox.Show("TEST"); }
pour tester mais rien ne se passe, je ne dois pas être sur la bonne voie
MoYoX
Messages postés
127
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
21 mars 2014
3
18 déc. 2012 à 13:31
18 déc. 2012 à 13:31
C'est bon j'ai trouvé !
J'ai vu comment des gens utilisaient le OnLoad sur Internet et j'ai fait un :
sous ma classe et cela fonctionne!
Merci de m'avoir mis sur la voie !
J'ai vu comment des gens utilisaient le OnLoad sur Internet et j'ai fait un :
protected override void OnShown(EventArgs e) { //MON CODE }
sous ma classe et cela fonctionne!
Merci de m'avoir mis sur la voie !