Billybobbonnet
Messages postés148Date d'inscriptionlundi 12 février 2007StatutMembreDernière intervention 9 novembre 2013
-
28 avril 2008 à 16:19
Billybobbonnet
Messages postés148Date d'inscriptionlundi 12 février 2007StatutMembreDernière intervention 9 novembre 2013
-
29 avril 2008 à 16:21
Bonjour à tous,
Attention, question de débutant
Je cherche un contôle à mettre sur une form ou je peux afficher du texte et où je peux avoir l'équivalent des" console.writeline" ou "console.readline" . J'ai essayé avec une textbox multiline ou un label, mais je n'ai pas réussi à obtenir ça, le mieux obtenu étant le texte à la suite avec Me.TextBox1.AppendText ("texte")
Merci!
A voir également:
Le controle pour avoir un équivalent de console dans une form
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 29 avril 2008 à 10:23
Ton message d'erreur me laisse supposer que la fonction qui met à jour ton textbox tourne dans un thread différent de celui de l'écran. Un thread qui tu aurais lancer toi, à priori, peut-etre par un backgroudworker ???
Tu ne peux pas effectivement mettre à jours des controles d'écran directement depuis un thread séparé.
Il existe une technique, que je ne saurais t'expliquer, je ne la maitrise pas, je ne l'ai encore jamais mis en oeuvre.
Mais c'est une question qui revient de temps en temps sur le forum, donc tu y trouveras les réponses.
Si c'est bien là le problème.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 28 avril 2008 à 20:38
"...e mieux obtenu étant le texte à la suite avec Me.TextBox1.AppendText ("texte")..."
Ben oui, c'est toi qui gère la totalité du texte à afficher, y compris les sauts de lignes. Si tu ne rajoute pas les sauts à la fin de ton texte, ton textbox ne vas pas les inventer.
Me.TextBox1.AppendText ("texte" & Environment.Newline)
Et pour répondre à la question dans le titre, ce controle n'existe pas. C'est à toi à le faire avec un Label, Textbox, RichTextBox, .....
Billybobbonnet
Messages postés148Date d'inscriptionlundi 12 février 2007StatutMembreDernière intervention 9 novembre 2013 29 avril 2008 à 08:54
Le problème c'est que j'ai une erreur d'exécution "Le contrôle TextBox1 a fait l'objet d'un
accès à partir d'un thread autre que celui sur lequel il a été créé"
J'ai juste fait une fonction pour ajouter du texte:
Function Append(ByVal text)
If text = Nothing Then
Resume
Else
Me.TextBox1.AppendText(text & Environment.NewLine)
End If
End Function
End Class
La doc de l'erreur propse soit une centaine de lignes de code "pour bien faire les choses" soit de notifier au début CheckForIllegalCrossThreadCalls = False
J'ai mis la constante à false mais je ne sais pas si je dois vraiment résoudre cette erreur, que je n'avais jamais rencontré en vb6. Il a une astuce?
Billybobbonnet
Messages postés148Date d'inscriptionlundi 12 février 2007StatutMembreDernière intervention 9 novembre 2013 29 avril 2008 à 16:21
J'utilise une bibliothèque pour écouter des messages broadcastés sur le réseau. Je suppose que les threads séparés viennent de là.
Ce que j'aurais voulu trouver, c'est une classe de manipulation de text box multiligne utilisable depuis d'autres threads mais je ne sais pas si ça se fait. Mettre les mains dans les gestion des processus (thread = process?) me semble un peu hasardeux, puisque j'ai eu énormément de mal à trouver la commande vbCRlf !