IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Threads et Windows Forms


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 34
    Points : 17
    Points
    17
    Par défaut Threads et Windows Forms
    Bonjour à tous !

    Je fais appel à vous, car j'utilise un délégué pour accéder à une fenêtre en Windows Form, mais je n'y arrive pas ; Windows Forms ne se modifie pas. Il n'y a aucune erreur ou exception. C'est pour créer un chat.

    Les lignes qui modifient le contrôle graphique (une RichTextBox) sont passées, mais on ne voit pas les changements lors de l'exécution. Pourtant, j'ai bien testé, et l'événement TextChanged est "activé" lors du passage sur ces lignes.
    Je ne comprends pas ce qui se passe

    Merci de m'aider !

    Syrl

    Un code vous aidera sûrement...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Déclaration du délégué :
    Delegate Sub dAfficher(ByVal Texte As String)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'Invoke du délégué :
    Dim d As Form1 = CType(Application.OpenForms(0), Form1)
    d.Invoke(New Form1.dAfficher(AddressOf Form1.Afficher), System.Text.Encoding.UTF8.GetString(Octets))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    'Fonction Afficher :
    Sub Afficher(ByVal Texte As String)
        Try
            If Texte.StartsWith("Info") Then
                Texte = Texte.Remove(0, 5)
     
                'Ca ne marche pas à partir d'ici non plus
                Me.RTXT_CHAT.Text += Texte + vbNewLine
                Me.RTXT_CHAT.Select(Me.RTXT_CHAT.Text.Length - Texte.Length, Texte.Length)
                Me.RTXT_CHAT.SelectionColor = Color.Red
     
            ElseIf Texte.StartsWith("Message") Then
                Texte = Texte.Remove(0, 8)
     
                Dim IsPseudo As Boolean = True 'Indique si la boucle en est au pseudo ou au message
                Dim Pseudo As String = ""
     
                For Each Caractere In Texte.ToCharArray 'décomposition pseudo//message pour mettre en couleurs sur le RichTextBox
                    If Caractere <> "]" Then
                        Pseudo += Caractere
                        Texte = Texte.Remove(0, 1)
     
                    Else
                        Pseudo += Caractere
                        Texte = Texte.Remove(0, 1)
                        Exit For
                    End If
                Next
     
                'C'est à partir d'ici que ça ne fonctionne pas...
                Me.RTXT_CHAT.Text += Pseudo
                Me.RTXT_CHAT.Select(Me.RTXT_CHAT.Text.Length - Pseudo.Length, Pseudo.Length)
                Me.RTXT_CHAT.SelectionColor = Color.Green
     
                Me.RTXT_CHAT.Text += Texte + vbNewLine
                Me.RTXT_CHAT.Select(Me.RTXT_CHAT.Text.Length - Texte.Length, Texte.Length)
                Me.RTXT_CHAT.SelectionColor = Color.Black
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Bon, finalement, j'ai été contraint de supprimer la classe dans laquelle était mon invoke. J'ai donc tout déplacé dans la classe principale, et ça a l'air de fonctionner...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CF 2.0] - Initialisation d'un Windows.form dans un thread
    Par Mr.abdEr dans le forum Windows Mobile
    Réponses: 1
    Dernier message: 10/06/2008, 16h23
  2. Thread intervenant sur un Windows Form
    Par marcusien dans le forum Windows Forms
    Réponses: 3
    Dernier message: 13/03/2007, 10h05
  3. [debutant VC++ et C++] Windows form et OPENFILENAME
    Par Le Scandinave dans le forum MFC
    Réponses: 5
    Dernier message: 08/03/2005, 15h31
  4. [C#] windows form et ComboBox
    Par telynor dans le forum Windows Forms
    Réponses: 9
    Dernier message: 12/11/2004, 18h17
  5. [VB.NET] windows form traits
    Par DG JohnJohn dans le forum Windows Forms
    Réponses: 3
    Dernier message: 08/06/2004, 15h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo