Il linguaggio Visual Basic di Microsoft
 

VB.net 2013 *****e RS232 crascia APP all'uscita

ApipApip 22 Nov 2014 17:17
Ciao
sto verificando alcuni dati I/O per la RS232, funziona ma all'uscita
dall'applicazione, anche chiudendo

Private Sub Form1_FormClosed(sender As Object, e As FormClosedEventArgs) Handles
Me.FormClosed
'On Error Resume Next

*****Port1.Close()
Timer1.Enabled = False
Button1.Text = "OPEN COM"
*****Port1.Close()
Me.Close()
Application.Exit()
End Sub

Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs)
Handles Me.FormClosing

*****Port1.Close()
Timer1.Enabled = False
Button1.Text = "OPEN COM"
*****Port1.Close()

End Sub

Anche togliendo questi sopra o uno o l'altro o i 2, .... Mi freeza l'app che non
esce più nemmeno da "gestione attività". Devo riavviare il PC (W7)

Provengo dal VB6 e non avevo questo problema.... cosa mancherebbe?

Consigli?
Franz_aRTiglio 22 Nov 2014 17:36
ApipApip scriveva il 22/11/2014 :

> sto verificando alcuni dati I/O per la RS232, funziona ma all'uscita
> dall'applicazione, anche chiudendo

Mai provato con .net, ma con VB6 (mscomm) avevo problemi simili
a meno di non usare (codice scritto a braccio):

Sub CloseComm()
If MsComm.PortOpen = True Then
MsComm.RThreshold = 0 ' disabilita evento OnComm
MsComm.InBufferCount = 0
MsComm.OutBufferCount = 0 ' svuota i buffer
DoEvents ' male non fa
MsComm.PortOpen = False ' chiude
End If
End Sub
ApipApip 22 Nov 2014 17:37
> Sub CloseComm()
> If MsComm.PortOpen = True Then
> MsComm.RThreshold = 0 ' disabilita evento OnComm
> MsComm.InBufferCount = 0
> MsComm.OutBufferCount = 0 ' svuota i buffer
> DoEvents ' male non fa
> MsComm.PortOpen = False ' chiude
> End If

Grazie per l'info, provo subito a vedere quali accetta dall'elenco

http://tinyurl.com/olsthpm

ciao
ApipApip 23 Nov 2014 11:26
Ho trovato una soluzione ed era stranamente, almeno sembra, il timer dopo il
close:

If *****Port1.IsOpen Then
*****Port1.DiscardInBuffer()
*****Port1.DiscardOutBuffer()
Timer1.Enabled = False
Button1.Text = "OPEN COM"
Application.DoEvents()
*****Port1.Close()
End If

Se mettevo la chiusura del timer dopo il .close, usciva dal loop senza segnalare
nessun errore, fermando i processi linea per linea (dando poi F5) saltava fuori
o si freezava...

Ho messo questo sia sul bottone che nei formclosed e formcosing e sembrerebbe
funzionare.

ps: qualche "anima pia" mi spiegherebbe se sono questi che intervengono
(formclosed e closing) all'exit dall'App o premendo sulla X del form e quale sia
la differenza?

grazie... provengo da VB6 da imbranato come sempre e devo abituarmi alle nuove
sintassi... che già poco conosco... chiedo venia!
ciao
Anto
ApipApip 24 Nov 2014 19:38
>
> ps: qualche "anima pia" mi spiegherebbe se sono questi che intervengono
(formclosed e closing) all'exit dall'App o premendo sulla X del form e quale sia
la differenza?
>

Evento FormFormClosed
Si verifica dopo la chiusura del form.

Evento FormFormClosing
Si verifica prima della chiusura del form.

Ora vediamo se trovo qualche bel database... da iniziare..

Grazie

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio Visual Basic di Microsoft | Tutti i gruppi | it.comp.lang.visual-basic | Notizie e discussioni visual basic | Visual basic Mobile | Servizio di consultazione news.