Bonjour,
dans le Private Sub Port1_DataReceived
après le code Port1.ReadLine
je récupère la valeur pour afficher dans un textBox mais cette erreur
s'affiche
Opération inter-threads non valide : le contrôle TextBox a fait l'objet d'un
accès à partir d'un thread autre que celui sur lequel il a été créé.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Vincent Guichard
greg a écrit :
Bonjour, dans le Private Sub Port1_DataReceived après le code Port1.ReadLine je récupère la valeur pour afficher dans un textBox mais cette err eur s'affiche
Opération inter-threads non valide : le contrôle TextBox a fait l'o bjet d'un accès à partir d'un thread autre que celui sur lequel il a é té créé.
pouvez vous m'aider afin d'inserer la valeur
merci
De mémoire c'est un problème propre à VB.NET. Donc cela aurait plus ça place sur le forum m.p.fr.dotnet.vb plutôt que celui-ci (VB6 et antér ieurs).
Sinon c'est un problème dont l'explication est simple, même si sa résolution est complexe: la réception des données se fait dans une thread différente de la gestion de l'affichage, et donc tu ne peux pas écrire directement dans les contrôles depuis la fonction DataReceived . Il faut que tu dises au contrôle de se mettre à jour lui même (en principe, cela se fait avec une fonction délégée: En gros, tu envoi e un message au contrôle lui demandant de se mettre à jour tout seul). Voi r doc du coté de InvokeRequired et de Invoke pour le contrôle que tu ve ux mettre à jour.
Vincent Guichard
greg a écrit :
Bonjour,
dans le Private Sub Port1_DataReceived
après le code Port1.ReadLine
je récupère la valeur pour afficher dans un textBox mais cette err eur
s'affiche
Opération inter-threads non valide : le contrôle TextBox a fait l'o bjet
d'un accès à partir d'un thread autre que celui sur lequel il a é té créé.
pouvez vous m'aider afin d'inserer la valeur
merci
De mémoire c'est un problème propre à VB.NET. Donc cela aurait plus ça
place sur le forum m.p.fr.dotnet.vb plutôt que celui-ci (VB6 et antér ieurs).
Sinon c'est un problème dont l'explication est simple, même si sa
résolution est complexe: la réception des données se fait dans une
thread différente de la gestion de l'affichage, et donc tu ne peux pas
écrire directement dans les contrôles depuis la fonction DataReceived .
Il faut que tu dises au contrôle de se mettre à jour lui même (en
principe, cela se fait avec une fonction délégée: En gros, tu envoi e un
message au contrôle lui demandant de se mettre à jour tout seul). Voi r
doc du coté de InvokeRequired et de Invoke pour le contrôle que tu ve ux
mettre à jour.
Bonjour, dans le Private Sub Port1_DataReceived après le code Port1.ReadLine je récupère la valeur pour afficher dans un textBox mais cette err eur s'affiche
Opération inter-threads non valide : le contrôle TextBox a fait l'o bjet d'un accès à partir d'un thread autre que celui sur lequel il a é té créé.
pouvez vous m'aider afin d'inserer la valeur
merci
De mémoire c'est un problème propre à VB.NET. Donc cela aurait plus ça place sur le forum m.p.fr.dotnet.vb plutôt que celui-ci (VB6 et antér ieurs).
Sinon c'est un problème dont l'explication est simple, même si sa résolution est complexe: la réception des données se fait dans une thread différente de la gestion de l'affichage, et donc tu ne peux pas écrire directement dans les contrôles depuis la fonction DataReceived . Il faut que tu dises au contrôle de se mettre à jour lui même (en principe, cela se fait avec une fonction délégée: En gros, tu envoi e un message au contrôle lui demandant de se mettre à jour tout seul). Voi r doc du coté de InvokeRequired et de Invoke pour le contrôle que tu ve ux mettre à jour.
Vincent Guichard
Greg
merci de votre aide, c'est simple apres avoir bien compris ce que j'ai fait: Private Delegate Sub deleg1(ByVal donnee As String)
Private Sub InsererDansText (ByVal donnee As String)
Text1.text = donnee
End Sub
"Vincent Guichard" a écrit dans le message de news: 4a2d164a$0$17759$ greg a écrit :
Bonjour, dans le Private Sub Port1_DataReceived après le code Port1.ReadLine je récupère la valeur pour afficher dans un textBox mais cette erreur s'affiche
Opération inter-threads non valide : le contrôle TextBox a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé.
pouvez vous m'aider afin d'inserer la valeur
merci
De mémoire c'est un problème propre à VB.NET. Donc cela aurait plus ça place sur le forum m.p.fr.dotnet.vb plutôt que celui-ci (VB6 et antérieurs).
Sinon c'est un problème dont l'explication est simple, même si sa résolution est complexe: la réception des données se fait dans une thread différente de la gestion de l'affichage, et donc tu ne peux pas écrire directement dans les contrôles depuis la fonction DataReceived. Il faut que tu dises au contrôle de se mettre à jour lui même (en principe, cela se fait avec une fonction délégée: En gros, tu envoie un message au contrôle lui demandant de se mettre à jour tout seul). Voir doc du coté de InvokeRequired et de Invoke pour le contrôle que tu veux mettre à jour.
Vincent Guichard
merci de votre aide, c'est simple apres avoir bien compris
ce que j'ai fait:
Private Delegate Sub deleg1(ByVal donnee As String)
Private Sub InsererDansText (ByVal donnee As String)
Text1.text = donnee
End Sub
"Vincent Guichard" <vg.bleuciel.sa@wanadoo.fr> a écrit dans le message de
news: 4a2d164a$0$17759$ba4acef3@news.orange.fr...
greg a écrit :
Bonjour,
dans le Private Sub Port1_DataReceived
après le code Port1.ReadLine
je récupère la valeur pour afficher dans un textBox mais cette erreur
s'affiche
Opération inter-threads non valide : le contrôle TextBox a fait l'objet
d'un accès à partir d'un thread autre que celui sur lequel il a été créé.
pouvez vous m'aider afin d'inserer la valeur
merci
De mémoire c'est un problème propre à VB.NET. Donc cela aurait plus ça
place sur le forum m.p.fr.dotnet.vb plutôt que celui-ci (VB6 et antérieurs).
Sinon c'est un problème dont l'explication est simple, même si sa
résolution est complexe: la réception des données se fait dans une
thread différente de la gestion de l'affichage, et donc tu ne peux pas
écrire directement dans les contrôles depuis la fonction DataReceived.
Il faut que tu dises au contrôle de se mettre à jour lui même (en
principe, cela se fait avec une fonction délégée: En gros, tu envoie un
message au contrôle lui demandant de se mettre à jour tout seul). Voir
doc du coté de InvokeRequired et de Invoke pour le contrôle que tu veux
mettre à jour.
Private Sub InsererDansText (ByVal donnee As String)
Text1.text = donnee
End Sub
"Vincent Guichard" a écrit dans le message de news: 4a2d164a$0$17759$ greg a écrit :
Bonjour, dans le Private Sub Port1_DataReceived après le code Port1.ReadLine je récupère la valeur pour afficher dans un textBox mais cette erreur s'affiche
Opération inter-threads non valide : le contrôle TextBox a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé.
pouvez vous m'aider afin d'inserer la valeur
merci
De mémoire c'est un problème propre à VB.NET. Donc cela aurait plus ça place sur le forum m.p.fr.dotnet.vb plutôt que celui-ci (VB6 et antérieurs).
Sinon c'est un problème dont l'explication est simple, même si sa résolution est complexe: la réception des données se fait dans une thread différente de la gestion de l'affichage, et donc tu ne peux pas écrire directement dans les contrôles depuis la fonction DataReceived. Il faut que tu dises au contrôle de se mettre à jour lui même (en principe, cela se fait avec une fonction délégée: En gros, tu envoie un message au contrôle lui demandant de se mettre à jour tout seul). Voir doc du coté de InvokeRequired et de Invoke pour le contrôle que tu veux mettre à jour.