Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    36

    [Vb.net] - assegnare stringa a form non caricato.

    Salve a tutti,
    Nel primo thread facevo riferimento a due problemi "Simili" capitatemi nella stessa notte di ieri.
    Il motivo "sembrerebbe" essere il medesimo...attenderei lumi, sperando che arrivino!

    Allora:
    La parte interessata della sub è la seguente.
    Essa è in un form che funziona correttamente, e questa sub è incaricata di ricevere delle "stringhe" da un server irc
    e processarle.

    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)
    
                                FRM_QUERY.TXT_LEGGI.Text = FRM_QUERY.TXT_LEGGI.Text & "oooooo" & vbCrLf
                                FRM_QUERY.Visible = True
                            End If
    oRA, in questo punto della sub:
    codice:
     
       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)
    
                                FRM_QUERY.TXT_LEGGI.Text = FRM_QUERY.TXT_LEGGI.Text & "oooooo" & vbCrLf
                                FRM_QUERY.Visible = True
                            End If
    la stringa mail contiene un messaggio privato e FRM_QUERY in questo esatto momento
    non è ancora caricato.
    Il software dovrebbe quindi far apparire frm_Query che contiene una textbox
    e in questa textbox dovrebbe apparire il messaggio privato. Giusto?
    (Esattamente come fa mirc, insomma!)
    Ho provato a sostituire il visibile con lo show, ma non cambia nulla

    Non so per quale motivo,

    FRM_QUERY.TXT_LEGGI.Text = FRM_QUERY.TXT_LEGGI.Text & "oooooo" & vbCrLf
    FRM_QUERY.Visible = True

    non funziona.
    O meglio: il form appare ma si pianta, in quella situazione in cui sembra che
    stia caricando MILIONI di dati al momento delle evento LOAD. non so se mi spiego.
    A quel punto devo bloccare il debug e ricominciare.

    A me sembra tutto cosi' OVVIO..dove sbaglio??

  2. #2
    Io preferirei lanciare il form con FRM_QUERY.Show()

    Domanda: che succede se sostituisci:

    If mail.Contains(" ") Then......

    con

    If mail.Contains(" ") AndAlso Not FRM_QUERY.Visible Then..........

    .

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.