2015-09-21 1 views
0

J'ai un programme Windows-Mobile qui fonctionne avec poids Connexion via rs232.Les polices changent seules d'une manière étrange - Windows CE

son excellent travail, mais si le programme fonctionne dans une période de temps -

polices changent seul de grande à petite police

J'ai remarqué que le problème est dans la première partie 1 - si je marque cette partie1

Les polices ne changeront pas. (Je ne sais pas pourquoi cela se passe ....)

mon code:

//PART 1 

    port = new SerialPort("COM3", 9600, Parity.None, 8, StopBits.One); 
    port.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(Recepcion); 

    private SerialPort port; 
      StringBuilder SB; 
      private void Recepcion(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) 
      { 
       try 
       { 
        SB = new StringBuilder(1000); 
        Application.DoEvents(); 
        System.Threading.Thread.Sleep(122); 
        SB.Append(port.ReadExisting()); 
        port.DiscardInBuffer(); 
        this.Invoke(new EventHandler(Actualizar)); 
       } 
       catch { } 
      } 


    //PART2 
      string MOMO1, MOMO2; 
      string[] WI; 
      string ALL; 
      private void Actualizar(object s, EventArgs e) 
      { 
       ALL = SB.ToString().Trim(); 
       WI = ALL.Split(','); 
       ALL = WI[2].ToString().Trim(); 
       MOMO1 = ALL.Replace("+", "").Replace("g", "").Replace("ST", "").Replace("GS", "").Replace("US", ""); 
       if (MOMO1 != "") 
       { 
        MOMO2 = MOMO1; 
       } 
       lblMSG.Font = new Font("Ariel", 48, FontStyle.Bold); 
       lblMSG.Text = MOMO2; 
       Check_Weight(); 
       GC.Collect(); // <-- is it OK ? 
      } 

Quelqu'un peut-il me dire pourquoi et comment le résoudre?

+0

ce qui se passe dans Check_Weight()? –

+0

Salut, dans Check_Weight() - est très simple Méthode - pas utile – Gold

+0

Salut, je mets à jour ma question. – Gold

Répondre

0

essayer dans votre code

private SerialPort port; 
      StringBuilder SB; 
      private void Recepcion(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) 
      { 
       try 
       { 
        SB = new StringBuilder(1000); 
        SB.Append(port.ReadLine()); 
        port.DiscardInBuffer(); 
        this.Invoke(new EventHandler(Actualizar)); 
       } 
       catch { } 
      } 
+0

merci pour l'aide, mais toujours le même problème .......): – Gold