immerczeck
Messages postés27Date d'inscriptionjeudi 2 septembre 2004StatutMembreDernière intervention28 juin 2008
-
7 juil. 2006 à 16:43
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 2013
-
8 juil. 2006 à 12:27
Bonjour!
Pourriez-vous m'aider à trouver l'erreur dans ce code, à chaque fois que je clique sur le button1, une fenêtre apparaît, mais elle reste bloquée...
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void funct()
{
for (; ; )
{
{
if (a == true)
{
c1.Add(new Conversation("corr", "orig"));
a = false;
}
}
}
}
public class Conversation
{
public Form2 fenetre;
public string corres;
public string origin; public Conversation(string corr, string orig) { corres corr; origin orig; fenetre = new Form2(); fenetre.Show(); fenetre.Activate(); }
public void Activate() { fenetre.Show(); fenetre.Activate(); }
}
}
}
immerczeck
Messages postés27Date d'inscriptionjeudi 2 septembre 2004StatutMembreDernière intervention28 juin 2008 7 juil. 2006 à 17:31
Merci de ta réponse!
Je viens d'essayer en mattant la classe à l'extérieur, ça veut toujours pas!
Pas d'autres idées? (je précise que la Form 2 ne contient aucun contrôle, aucun code n'est exécuté au chargement)
apacheswiss
Messages postés154Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention22 août 2007 7 juil. 2006 à 18:58
peut-être que ça viens du fait que c'est ton 2ème thread qui gère cette fenêtre, et qui est dans une boucle qui lui prend tout son temps??? je ne suis pas sûre...
essaye de faire en sorte de faire un thread par fenêtre ouverte...
Vous n’avez pas trouvé la réponse que vous recherchez ?
immerczeck
Messages postés27Date d'inscriptionjeudi 2 septembre 2004StatutMembreDernière intervention28 juin 2008 7 juil. 2006 à 19:12
ah au fait!
ça ne risquerait pas de mieux marcher avec un évènement? comme Onachanged par exemple?
Seulement j'y connais rien aux évènements alors je sais pas du tout si ça changerait quelque chose.
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 8 juil. 2006 à 11:27
Salut,
Le problème vient sûrement du fait que tu instancies une nouvelles form dans ton thread !
Franchement, s'est très très déconseillé de faire ce genre de chose, ça n'apporte que des ennuis...
immerczeck
Messages postés27Date d'inscriptionjeudi 2 septembre 2004StatutMembreDernière intervention28 juin 2008 8 juil. 2006 à 12:16
lut!
merci beaucoup!!
j'ai adapté un peu le code et ça marche parfaitement!
est-ce que tu pourrais expliquer la ligne
this.Invoke(
new
EventHandler(
this.CreateWindows),
this._al.Count,
EventArgs.Empty);
si j'ai bien compris, un nouvel évènement est créé? mais à quoi sert le Invoke? à l'appeler?
Sinon, voici le code, pour ceux que ça intéresserait:
public partial class Form1 : Form
{
private ArrayList _al = new ArrayList();
private bool _construct = true;
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 8 juil. 2006 à 12:27
Petite correction : Quand tu appelles le Invoke, pas besoin de passer this._al.Count, tu peux mettre null sans problème :-)
Pour savoir ce que fais Invoke, je te renvoie sur ce très bon tuto de Mx