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