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
Partager