Bonjour,

Je fais appel à vous pour me sortir d'un problème. J'ai commencé à développé un programme et d'un coup j'ai eu une erreur que voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Une exception non gérée du type 'System.InvalidOperationException' s'est produite
Informations supplémentaires : Une erreur s'est produite lors de la création du formulaire. Pour plus d'informations, consultez Exception.InnerException. L'erreur est : La référence d'objet n'est pas définie à une instance d'un objet.
Cet erreur est situé sur une ligne du designer.vb de ma fenetre principale :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 <Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
        Protected Overrides Sub OnCreateMainForm()
            Me.MainForm = Global.ChatPriv.Form1
        End Sub
La ligne en cause est celle dans la fonction. N'ayant pas trop d’idées pour déboguer cette erreur, j'ai donc fais retour arrière et mis en commentaire tout les morceaux de codes récents. Mais rien n'y fait cette erreur ne disparaît pas et apparaît avant même la moindre exécution d'une ligne de code.

Voici le code de mon programme :
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
Imports System.Threading
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports System.IO
 
Public Class Form1
    '******************THREAD - DELEGATES*************************
    Dim threadReception As New Thread(AddressOf receptionContinue)
    Dim threadVerfiConnect As New Thread(AddressOf verifConnectSocket)
    Delegate Sub dModifFormulChat(ByVal data As String)
    Dim modifChat As dModifFormulChat
 
 
    '************VARIABLES COMMUNICATION SERVEUR******************
    Dim client As TcpClient
    Dim flux As NetworkStream = client.GetStream()
    Dim writer As StreamWriter = New StreamWriter(flux)
    Dim reader As StreamReader = New StreamReader(flux)
 
    Dim portMax As Integer = 65535
    Dim portMin As Integer = 1000
    Dim regexIP As New RegularExpressions.Regex("([0-9]{1,3}\.){3}")
 
    '******************VARIABLES MESSAGES*************************
    Private Const errorIP As String = "L'adresse IP du serveur spécifiée n'est pas une addresse IP valide."
    Private Const errorPort As String = "Le port spécifié est incorrect, il doit être un nombre valide."
    Private Const inConnect As String = "Tentative de connexion au serveur en cours..."
    Private Const connectOK As String = "Connexion au serveur réussie."
    Private Const connectNOK As String = "La connexion au serveur a échoué."
    Private Const deconnected As String = "La connexion avec le serveur a été perdue."
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        threadReception.IsBackground = True
        threadVerfiConnect.IsBackground = True
    End Sub
 
    Private Sub buttonConnect_Click(sender As Object, e As EventArgs) Handles buttonConnect.Click
        Dim serverAdress As IPAddress
        Dim serverPort As Integer
        Dim readyToConnect As Boolean = False
 
        If IPAddress.TryParse(adressServer.Text, serverAdress) And regexIP.IsMatch(adressServer.Text) Then
            readyToConnect = True
        Else
            formulChat.AppendText(errorIP + vbCrLf)
            readyToConnect = False
        End If
        If IsNumeric(portServer.Text) Then
            serverPort = CType(portServer.Text, Integer)
            If serverPort > portMin And serverPort < portMax Then
                readyToConnect = True
            Else
                readyToConnect = False
                formulChat.AppendText(errorPort + vbCrLf)
            End If
        Else
            readyToConnect = False
            formulChat.AppendText(errorPort + vbCrLf)
        End If
        If readyToConnect Then
            socketConnect(serverAdress, serverPort)
        End If
    End Sub
 
    Private Sub socketConnect(ByVal ip As IPAddress, ByVal port As Integer)
        'Connection au socket via TcpClient
        formulChat.AppendText(inConnect + vbCrLf)
 
        Try
            client = New TcpClient(ip.ToString, port)
            If threadReception.ThreadState = ThreadState.Unstarted Then
                threadReception.Start()
            End If
            If threadVerfiConnect.ThreadState = ThreadState.Unstarted Then
                threadVerfiConnect.Start()
            End If
        Catch ex As Exception
            formulChat.AppendText(connectNOK + vbCrLf)
            PictureBox1.Image = My.Resources.rondRouge
        End Try
    End Sub
 
    Private Sub modifFormulChat(ByVal data As String)
        formulChat.AppendText(data)
    End Sub
 
    Private Sub verifConnectSocket()
        Dim socketConnect As Boolean = False
        While True
            If client.Connected And Not socketConnect Then
                socketConnect = True
                PictureBox1.Image = My.Resources.rondVert
                Me.Invoke(modifChat, (connectOK + vbCrLf))
            End If
            If Not client.Connected And socketConnect Then
                socketConnect = False
                PictureBox1.Image = My.Resources.rondRouge
                Me.Invoke(modifChat, (deconnected + vbCrLf))
            End If
        End While
    End Sub
 
    Private Sub receptionContinue()
        While client.Connected
            Try
                If Not reader.EndOfStream Then
                    formulChat.AppendText(reader.ReadToEnd)
                End If
            Catch ex As Exception
            End Try
        End While
    End Sub
End Class
Merci d'avance de vous pencher sur mon soucis.
Cordialement

EDIT: J'ai trouvé mon erreur. Le problème vient de cette partie dans l'initialisation de mes variables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 Dim client As TcpClient
    Dim flux As NetworkStream = client.GetStream()
    Dim writer As StreamWriter = New StreamWriter(flux)
    Dim reader As StreamReader = New StreamReader(flux)
Je configure mon stream a partir d'un TcpClient non instancié .....