Problème sur mise à jour d'un ToolStripStatusLabel

Résolu
Aukys Messages postés 7 Date d'inscription jeudi 3 septembre 2009 Statut Membre Dernière intervention 29 janvier 2010 - 3 sept. 2009 à 16:00
Aukys Messages postés 7 Date d'inscription jeudi 3 septembre 2009 Statut Membre Dernière intervention 29 janvier 2010 - 4 sept. 2009 à 12:57
Bonjour à tous,

J'ai un souci avec la mise à jour d'un ToolStripStatusLabel dans un StatutStrip.

Mon Form est composé d'un Panel autocrollable dans lequel j'ajoute, par code, un composant (qui est un simple formulaire avec des textbox).

La mise à jour de mon ToolStripStatusLabel se fait via un timer (test de connexion au réseau).

Le problème est qu'à chaque mise à jour de mon ToolStripStatusLabel, la scrollbar de mon Panel est réactualisée --> je me retrouve en haut de mon Panel.

Y'a-t-il un moyen pour que la mise à jour de mon ToolStripStatusLabel n'interfere pas avec mon Panel ?

Merci pour vos idées !

Aukys

4 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 sept. 2009 à 12:09
j'arrive en effet à reproduire ton bug...

le fait est que ce n'est pas l'affichage de texte, le problème
si on l'affiche en titre de la form ou dans le bouton, pas de problème

dès qu'on change la visibilité du label, bug

invalidate et/ou lockwindowupdate sont sans effet


après pas mal de tests, la solution est toute simple : mettre la propriété AUTOSIZE du TOOLSTRIP à FALSE

++
[hr]
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 sept. 2009 à 05:51
salut,

montre-nous ton code stp, çà sera plus pratique
[hr]
0
Aukys Messages postés 7 Date d'inscription jeudi 3 septembre 2009 Statut Membre Dernière intervention 29 janvier 2010
4 sept. 2009 à 08:43
Bonjour,

Effectivement c'est plus parlant !

Voici le code au niveau de mon Form :

Public Class Form1

Private Sub InitializeTimer()

' On initialise l'intervalle à 5 secondes au niveau du timer "Timer1"
Timer1.Interval = 5000
' Activation du Timer "Timer1"
Timer1.Start()

End Sub

Private Sub Timer1_Tick(ByVal sender as Object, ByVal e As System.EventArgs) Handles Timers1.Tick

' On affiche l'heure dans le ToolStripStatusLabel "ToolStripStatusLabel1"
ToolStripStatusLabel1.Text = System.DateTime.Now

End Sub

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

' On initialise le Timer à l'ouverture de la Form
InitializeTimer()

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e as System.EventArgs) Handles Button1.Click

' Cette procédure permet d'afficher mon formulaire sur activation du bouton "Button1"

' Définition de mon formulaire de saisie "MonFormulaire"
Dim tempObject As New MonFormulaire

' Effacement de tous les controls existant dans mon panel "Panel1"
Panel1.Controls.Clear()

' Affichage de mon formulaire dans mon panel
Panel1.Controls.Add(tempObject)

End Sub

End Class


Dans mon formulaire (MonFormulaire), il y a uniquement une textbox. Ce formulaire est plus grand que mon Panel "Panel1" de sorte que les scrollbars apparaissent. ("MonFormulaire" est un UserControl)

Lorsque je donne le focus à ma TextBox dans mon formulaire, je suis renvoyé en haut de ce dernier au moment de l'actualisation de ToolStripStatusLabel1.

Merci pour votre aide !

Aukys
0
Aukys Messages postés 7 Date d'inscription jeudi 3 septembre 2009 Statut Membre Dernière intervention 29 janvier 2010
4 sept. 2009 à 12:57
Excellent !!

Merci beaucoup du coup de main !

Aukys
0
Rejoignez-nous