Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Scintillement lors de l'affichage d'un contrôle

4 réponses
Avatar
Paraglider
Bonjour,

J'ai cr=E9=E9 deux contr=F4les utilisateur.

J'ai une form principale avec un panel o=F9 j'affiche l'un ou l'autre de
ces deux contr=F4les via un menustrip.
Lorsque je passe d'un contr=F4le =E0 l'autre, j'ai toujours un
"clignotement". J'ai essay=E9 la propri=E9t=E9 "DoubleBuffered" autant sur
mon formulaire principal que sur mes contr=F4les mais cela est sans
effet :-(
Un contr=F4le contient 10 textbox, deux combobox et 5 maskeditbox ...



Si quelqu'un avait une solution !

Merci de vos r=E9ponses

Jacques

4 réponses

Avatar
LE TROLL
Bonjour,

Tentes avec la propriété visible, effaçant d'abod, puis affichant
l'autre ensuite ?

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"Paraglider" a écrit dans le message de
news:
Bonjour,

J'ai créé deux contrôles utilisateur.

J'ai une form principale avec un panel où j'affiche l'un ou l'autre de
ces deux contrôles via un menustrip.
Lorsque je passe d'un contrôle à l'autre, j'ai toujours un
"clignotement". J'ai essayé la propriété "DoubleBuffered" autant sur
mon formulaire principal que sur mes contrôles mais cela est sans
effet :-(
Un contrôle contient 10 textbox, deux combobox et 5 maskeditbox ...



Si quelqu'un avait une solution !

Merci de vos réponses

Jacques
Avatar
Bill2
Paraglider wrote:
Bonjour,

J'ai créé deux contrôles utilisateur.

J'ai une form principale avec un panel où j'affiche l'un ou l'autre de
ces deux contrôles via un menustrip.
Lorsque je passe d'un contrôle à l'autre, j'ai toujours un
"clignotement". J'ai essayé la propriété "DoubleBuffered" autant sur
mon formulaire principal que sur mes contrôles mais cela est sans
effet :-(
Un contrôle contient 10 textbox, deux combobox et 5 maskeditbox ...



Si quelqu'un avait une solution !

Merci de vos réponses

Jacques



il faut utiliser beginUpdate et EndUpdate
MonControl.BeginUpdate

' ici, ton code de mise à jour des données dans les combo box, textbox, etc

MonControl.endUpdate

--
Bill2
Utilisez Process Manager, gestionnaire de processus automatique :
http://www.bill2-software.com/processmanager/
Avatar
Paraglider
Bonjour Bill2,

Comme c'est la première fois que j'entend parler de BeginUpdate.
Pourrais-tu me donner quelques explications supplémentaires?

Voici le code que j'utilise :
Estim1 est mon contrôle utilisateur et PanelEstimation, le panel de
mon formulaire principale.
Quand j'affiche le premier contrôle, c'est correcte. À partir du
moment où j'affiche le deuxième contrôle, c'est à partir de ce mom ent
là que cela commence à clignoter si je passe de l'un à l'autre

Private Sub Étape1ToolStripMenuItem_Click ...
Dim TempObjet As New Estim1
PanelEstimation.Controls.Clear()
PanelEstimation.Controls.Add(TempObjet)
Me.Text = "Ajout"
End Sub

Private Sub Étape2ToolStripMenuItem_Click ...
Dim TempObjet As New Estim2
PanelEstimation.Controls.Clear()
PanelEstimation.Controls.Add(TempObjet)
Me.Text = "Ajout"
End Sub

Merci

Jacques
Avatar
Bill2
Paraglider wrote:
Bonjour Bill2,

Comme c'est la première fois que j'entend parler de BeginUpdate.
Pourrais-tu me donner quelques explications supplémentaires?



BeginUpdate, sur un control, indique à .Net qu'on va modifier l'apparence
et/ou le contenu de ce control.
BeginUpdate sert à donc à ce que le refresh de l'affichage ne se fasse plus,
le temps de la mise à jour.
Comme ça, quand on ajoute plein de controles à un objet, on ne le rafraichi
qu'une seule fois : à la fin de toutes les MAJ.


Voici le code que j'utilise :
Estim1 est mon contrôle utilisateur et PanelEstimation, le panel de
mon formulaire principale.
Quand j'affiche le premier contrôle, c'est correcte. À partir du
moment où j'affiche le deuxième contrôle, c'est à partir de ce moment
là que cela commence à clignoter si je passe de l'un à l'autre




A tester ...
Private Sub Étape1ToolStripMenuItem_Click ...
Dim TempObjet As New Estim1
PanelEstimation.BeginUpdate()
PanelEstimation.Controls.Clear()
PanelEstimation.Controls.Add(TempObjet)
Me.Text = "Ajout"
PanelEstimation.endUpdate()
End Sub

Private Sub Étape2ToolStripMenuItem_Click ...
Dim TempObjet As New Estim2
PanelEstimation.BeginUpdate()
PanelEstimation.Controls.Clear()
PanelEstimation.Controls.Add(TempObjet)
Me.Text = "Ajout"
PanelEstimation.endUpdate()

End Sub


A tester, mais je promets rien.

--
Bill2
Avoir une section fumeur dans un restaurant c'est comme avoir une
section pisseur dans une piscine