CHiedo scusa all'admin e agli altri per il mio comportamento scorretto.
E dire che sono informatico di professione da 15 anni..
i miei errori in questo forum sono dovuti al fatto che, come potrete vedere,
ho postato nel forum alle 3 del mattino circa... ero abbastanza "stremato".
Il giorno si lavora... e il tempo per questo mio progetto ce l'ho solo dalle dieci di sera in poi
Ciò non costituisce una scusa valida, me ne rendo conto, ma questo è stato.
Chiedo ancora scusa.

Per tornare a bomba al discorso chiuso, giustamente, dall'admin:
( era: passaggio variabili da ... )

a oregon rispondo che.. No. è escluso che la variabile non sia valorizzata.
Controllato svariate volte. Anche passando una stringa "PIPPO" al posto della variabile.

a GRUMPY chiedo, se possibile, ancora un pò di attenzione al mio problema dato che effettivamente la sua mi sembra una strada percorribile.

A TUTTI invece dico che la seguente SUB è una sub, trovata su web, e che sto modificando, che serve a gestire le stringhe inviate da un server irc.
Ora: il form che si occupa di "chattare" può venir chiuso (dispose) ogni volta che l'utente vuole. Ho la necessità quindi di NON perdere la connessione al server, nel caso in cui il form venga chiuso....ed è per questo che ho il bisogno reale di tenere questa sub in un modulo!
Gestirei la chiusura del form inviando un comando "/PART #nomecanale", ma preserverei aperta la connessione al server!


Avevo evitato di postare il codice, sperando in un aiuto basato sull'intuito e sull'esperienza dei lettori, dato che mega sub è effettivamente una mega sub!
BTW, questo è il codice.

codice:
Public Sub ConnectThread_()
        TextBox1.Text = ""
        TextBox1.Text = "LOGS:" & vbCrLf
        Label3.BackColor = Color.Red
        Label3.Text = "disconnesso"
ConnectToServer:
        Dim ipHostInfo As System.Net.IPHostEntry
1:      Try : ipHostInfo = System.Net.Dns.GetHostEntry(Server) : Catch : GoTo 1 : End Try
        Dim EP As New System.Net.IPEndPoint(ipHostInfo.AddressList(0), port)
        sock = New System.Net.Sockets.Socket(EP.Address.AddressFamily, Net.Sockets.SocketType.Stream, Net.Sockets.ProtocolType.Tcp)
        sock.Connect(Server, port)

        send("NICK " & nick)
        send("USER " & "FC IRC" & " 0 * :" & "FC IRC")
        'rtbChat.Text = "Connecting ... " & vbNewLine

ServerLoggs:
        Try
            Do While sock.Connected = True


                Dim data(4096) As Byte
                sock.Receive(data, 4096, SocketFlags.None)
                Dim mail As String = System.Text.ASCIIEncoding.UTF8.GetString(data)
                TextBox1.Text = TextBox1.Text & Hour(Now) & ":" & Minute(Now) & "." & Second(Now) & "-->" & mail & vbCrLf
                If mail.Contains(" ") Then
                    If mail.Substring(mail.IndexOf(" ") + 1, 7) = "PRIVMSG" Then

                        If mail.Contains("#") Then
                            Dim senderr As String = mail.Remove(0, 1)
                            senderr = senderr.Split("!")(0)
                            Dim channel_ As String = mail.Remove(0, mail.IndexOf("PRIVMSG")).Replace("PRIVMSG", "").Replace(" ", "").Split(":")(0)
                            Dim SentText As String = mail.Remove(0, mail.IndexOf("#")).Remove(0, channel_.Length + 2)
                            'rtbChat.Text &= "[" & Now.ToLongTimeString & "] <" & senderr & "> : " & SentText
                        Else
                            'Dim channel_ As String = mail.Remove(0, mail.IndexOf("PRIVMSG")).Replace("PRIVMSG", "").Replace(" ", "").Split(":")(0)
                            'Dim SentText As String = mail.Remove(0, mail.IndexOf("#")).Remove(0, channel_.Length + 2)
                            Dim pollo As New FRM_QUERY
                            pollo.TXT_LEGGI.Text = pollo.TXT_LEGGI.Text & "oooooo" & vbCrLf
                            pollo.Visible = True
                        End If
                    ElseIf mail.Contains("PING") Then
                        Dim pserv As String = mail.Substring(mail.IndexOf(":"), mail.Length - mail.IndexOf(":"))
                        pserv = pserv.TrimEnd(Chr(0))
                        mail = ("PING from " & pserv).Insert(11, " ") & ("PONG to " & pserv).Insert(9, " ")
                        send("PONG " & pserv)
                    ElseIf mail.ToLower.Contains("already in use") Then
                        nick &= "_"
                        send("NICK " & nick)
                        Threading.Thread.Sleep(500)
                        send("USER " & "SMTest" & " 0 * :" & "SMTest")
                        Threading.Thread.Sleep(500)
                        'rtbChat.Text &= "Nick name already in use , using alternative nick name" & vbNewLine
                    ElseIf mail.Contains("You have not registered") Then
                        sock.Disconnect(False)
                        sock.Close()
                        GoTo ConnectToServer
                    ElseIf mail.ToLower.Contains("ix") Then
                        send("JOIN " & channel)

                    ElseIf mail.Contains("353") Then
                        LButenti.Items.Clear()
                        Dim lines() As String = mail.Split(vbNewLine)
                        For Each line In lines
                            If line.ToLower.Contains(" 353") Then
                                Dim channel__ As String = mail.Remove(0, mail.IndexOf("#")).Split(":")(0)
                                onlinemembers = line.Remove(0, line.IndexOf("#")).Remove(0, channel__.Length).Split(" ")
                                For Each member In onlinemembers
                                    LButenti.Items.Add(member.ToString)
                                Next
                            End If
                        Next
                        Label3.BackColor = Color.GreenYellow
                        Label3.Text = "CONNESSO"
                    ElseIf mail.Contains("JOIN :#") Then
                        Threading.Thread.Sleep(300)
                        send("NAMES " & channel)
                    ElseIf mail.Contains("PART #") Or mail.Contains("QUIT") Then
                        Threading.Thread.Sleep(300)
                        send("NAMES " & channel)
                    ElseIf mail.Contains("KICK " & channel) Then
                        Dim AssKicker = mail.Remove(0, 1).Split("!")(0)
                        Dim Reason = mail.Remove(0, 1).Remove(0, mail.IndexOf("#") + 10).Split(":")(1)
                        Dim kickedasshole = mail.Remove(0, 1).Remove(0, mail.IndexOf("#") + 11).Split(":")(0)
                        If kickedasshole.ToLower.ToString.Trim() = nick.ToLower Then
                            Dim kicked As Boolean
                            kicked = True
                            sock.Disconnect(False)
                            sock.Close()
                            Exit Sub
                        Else
                            send("NAMES " & channel)
                        End If
                    ElseIf mail.Contains("MODE " & channel) Then
                        mail = mail & " "
                        Dim WhoSetMode As String = mail.Remove(0, 1).Split("!")(0)
                        Dim WhoIsLucky As String = mail.Split(" ")(4)
                        Dim WhatHeGot As String = mail.Split(" ")(3)
                        'rtbChat.Text &= WhoSetMode & " Sets Mode " & WhatHeGot & " On " & channel & " & WhoIsLucky & vbNewLine"
                        send("NAMES " & channel)
                    ElseIf mail.Contains(channel & " :Cannot join channel (+b)") Then
                        sock.Disconnect(False)
                        sock.Close()
                        Exit Sub
                    End If
                End If
            Loop
        Catch ex As Exception
            MsgBox(ex.Message, , "MODULO 2: NON GESTITO")
        End Try
    End Sub
come dicevo, questa ub stava in un modulo na, per farla funzionare l'ho dovuta incollare direttamente nel form.
il problema del passaggio di variabili a un form esterno
è relativo alla parte di codice in cui ricevo una stringa dal server
e ci lavoro sopra per avere una lista di nick.
codice:
  ElseIf mail.Contains("353") Then
                        LButenti.Items.Clear()
                        Dim lines() As String = mail.Split(vbNewLine)
                        For Each line In lines
                            If line.ToLower.Contains(" 353") Then
                                Dim channel__ As String = mail.Remove(0, mail.IndexOf("#")).Split(":")(0)
                                onlinemembers = line.Remove(0, line.IndexOf("#")).Remove(0, channel__.Length).Split(" ")
                                For Each member In onlinemembers
                                    LButenti.Items.Add(member.ToString)
                                Next
                            End If
                        Next
                        Label3.BackColor = Color.GreenYellow
                        Label3.Text = "CONNESSO"
ECCO.
Se incollo la sub nel form
la riga LButenti.Items.Add(member.ToString) funziona correttamente.
Se incollo la sub in un modulo , la stessa riga frmdestinazione.LButenti.Items.Add(member.ToString ) NON FUNZIONA.
Viene processata senza errori, ma totalmente ignorata!

Spero di aver fatto tutto correttamente, questa volta.


Grazie a tutti per l'attenzione
e grazie anche a chi precedentemente mi ha risposto, aiutandomi in altri thread, senza ricevere risposta