Partage
  • Partager sur Facebook
  • Partager sur Twitter

Bug graphiques en éxécution VB.NET

Rafraichissement de la page

    24 septembre 2018 à 9:13:35

    Bonjour à vous les zéros,

    je viens demander votre aide au sujet d'un bug qui s’effectue lorsque je viens réduire le form de mon application et que je tente de le développer (grâce aux bouton en haut a droite de l'écran). En effet certains éléments de la page ce retrouve ainsi bloqués et ce grises jusqu’à ce que je fasse "bouger" la fenêtre où ils réapparaissent alors.

    Ayant fait quelques petites recherchent j'ai trouvé une piste du côté de Me.refresh(). De ce fait j'ai mis un bouton qui exécute ce code lorsque mon problème intervient. Cependant cette solution n'est que temporaire puisque j'aimerai bien le faire disparaitre.

    Ps : le form en question affiche en temps réel, trois courbes, cela pourrait-il venir de là ?

    Merci d'avance pour votre temps :)

    • Partager sur Facebook
    • Partager sur Twitter
      24 septembre 2018 à 9:17:07

      Désolé, ma boule de cristal est actuellement indisponible, elle subit la révision des 50000 divinations ...
      • Partager sur Facebook
      • Partager sur Twitter
      Censément, quelqu'un de sensé est censé s'exprimer sensément.
        24 septembre 2018 à 9:28:15

        Qu'est ce que cela veut dire quand on s'exprime sensément ?

        -
        Edité par Jean-BaptisteMoria 24 septembre 2018 à 9:34:49

        • Partager sur Facebook
        • Partager sur Twitter
          24 septembre 2018 à 11:10:40

          Un bout de code pour reproduire le problème, ça serait pas de refus. ;)
          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
            24 septembre 2018 à 11:42:30

            Bonjour bacelar,

            je pense que les "bugs graphiques" interviennent lorsque le code entre dans le timer.tick et qu'il éxecute  un bout de code modifiant une caractéristique des controls (textbox, chart ..)

            je ne sais pas si tu vas réussir à reproduire le problème étant donné que le code fonctionnent avec un générateur ..

            Private Sub TimerCycleSonats1_Tick(sender As Object, e As EventArgs) Handles TimerCycleSONATS1.Tick
                    
            'variables locales
                    Dim s2Sonats1 As String = Str((DateTime.Now - t0Sonats1).TotalSeconds)
                    Dim r1Sonats1 As Integer()
                    Dim tempsrestanttabSonats1 As Integer()
                    Dim PresenceDefautSonats1 As Integer()
                    Dim EtatHT As Integer()
                    Dim ValAmpSonats1 As Integer()
                    Dim yValFreqSonats1, yValPuissanceSonats1, yValAmplitudeSonats1 As Integer
            
                    ConnectionSonats1() 'on se connecte au géné
                    Try
                        PresenceDefautSonats1 = ClientSonats1.ReadHoldingRegisters(1453, 1) '1100, 1)
                        EtatHT = ClientSonats1.ReadHoldingRegisters(1098, 1) '1100, 1)
                    Catch ex As Exception
                        Exit Sub
                    End Try
                    ClientSonats1.Disconnect()
            
                    If PresenceDefautSonats1(0) <> 20 Or finCycle < 11 Then
                        TB_PresenceDefautSONATS1.BackColor = Color.Green
                       
            'ACQUISITION DES DONNEES ConnectionSonats1() 'on se connecte au géné Try r1Sonats1 = ClientSonats1.ReadHoldingRegisters(95, 8) 'on vient lire les valeurs sur le géné tempsrestanttabSonats1 = ClientSonats1.ReadHoldingRegisters(1431, 1) ValAmpSonats1 = ClientSonats1.ReadHoldingRegisters(86, 1) '1100, 1) Catch ex As Exception TimerCycleSONATS1.Stop() TimerCycleSONATS1.Enabled = False MessageBox.Show("erreur durant le cyclage, vérifier que le générateur est toujours connecté ou alimenté, Fin du cycle " & ex.Message) BT_LancerCycleSONATS1.Enabled = True BT_stopperSONATS1.Enabled = False Me.Cursor = Cursors.Default Exit Sub End Try ClientSonats1.Disconnect() yValFreqSonats1 = r1Sonats1(0) yValPuissanceSonats1 = r1Sonats1(7) yValAmplitudeSonats1 = ValAmpSonats1(0) If yValPuissanceSonats1 < 0 Then yValFreqSonats1 += 65536 tempsSonats1(tocSonats1) = s2Sonats1 FrequenceSonats1(tocSonats1) = yValFreqSonats1 PuissanceSonats1(tocSonats1) = yValPuissanceSonats1 AmplitudeSonats1(tocSonats1) = yValAmplitudeSonats1 Chart1SONATS1.ChartAreas(1).AxisY.Maximum = yValFreqSonats1 + 100 Chart1SONATS1.ChartAreas(1).AxisY.Minimum = yValFreqSonats1 - 100 Chart1SONATS1.ChartAreas(2).AxisY.Maximum = 110 Chart1SONATS1.ChartAreas(2).AxisY.Minimum = 0 ' tocSonats1 += 1 Else Try tempsSonats1(tocSonats1) = s2Sonats1 FrequenceSonats1(tocSonats1) = yValFreqSonats1 PuissanceSonats1(tocSonats1) = yValPuissanceSonats1 AmplitudeSonats1(tocSonats1) = yValAmplitudeSonats1 Chart1SONATS1.ChartAreas(1).AxisY.Maximum = yValFreqSonats1 + 100 Chart1SONATS1.ChartAreas(1).AxisY.Minimum = yValFreqSonats1 - 100 Chart1SONATS1.ChartAreas(2).AxisY.Maximum = yValPuissanceSonats1 + 10 Chart1SONATS1.ChartAreas(2).AxisY.Minimum = 0 Catch ex As Exception MsgBox(" Sonats1 : Erreur : " & ex.Message) End Try End If TB_HzoutSONATS1.Text = yValFreqSonats1 'la valeur de la fréquence TB_WoutSONATS1.Text = yValPuissanceSonats1 'la valeur de la puissance TB_AMPoutSONATS1.Text = yValAmplitudeSonats1 Chart1SONATS1.Series(0).Points.AddXY(s2Sonats1, CType(yValFreqSonats1, Double)) Chart1SONATS1.Series(1).Points.AddXY(s2Sonats1, CType(yValPuissanceSonats1, Double)) Chart1SONATS1.Series(2).Points.AddXY(s2Sonats1, CType(yValAmplitudeSonats1, Double))

            Si arrives à voir quelque chose qui ne va pas n'hésite pas

            -
            Edité par Jean-BaptisteMoria 24 septembre 2018 à 11:50:48

            • Partager sur Facebook
            • Partager sur Twitter
              24 septembre 2018 à 14:41:56

              Votre code est très maladroit :

              - "ConnectionSonats1" avec méga effet de bord.

              - Try/Catch d'Exception alors que vous ne savez pas comment gérer ces exception (loguer/afficher, c'est pas gérer)

              - Finally est ton ami

              - Non utilisation de l'instruction Using pour la gestion automatique RAII des objets avec état (connexion ou autre).

              - Utilisation de MsgBox intrusif.

              etc...

              Pour votre problème spécifique, je pense que le problème est plus sur la constitution de votre formulaire pour que la mécanique standard du formulaire n'arrive pas à faire son job.

              Comment créez-vous les composants qui posent problème, quel sont leur types, quel politique de docking y est associé, est-ce que les modifications que vous y faites implique un "Invalidate" automatique, etc...

              Donc, le code de votre Formulaire, SVP.

              • Partager sur Facebook
              • Partager sur Twitter
              Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

              Bug graphiques en éxécution VB.NET

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown