Autoscroll du panel foireux :)

Publié 09 septembre 04 03:28 | TheSaib 

J'ai perdu une bonne partie de la journée (et de la nuit) à chercher pourquoi lorsque je clickait sur un control perso qui se trouvait dans un panel scrollable, j'avais un mouvement de ma scrollbar , qui amenait mon control à être légerement décalé.

Etant dans un contexte de Drag / Drop , ca pose un problème d'estethisme assez flagrant.

Pour comprendre ce qui se passe je m'attaque au Location_Changed de mon control pour intercepter la stack.

Après beaucoup de recherche voici le problème , et donc la chose à ne pas faire.

Dans mon code dans le click du control je fais:

((PlannerItem)sender).Selected = !(((PlannerItem)sender).Selected);

A priori rien d'exceptionnel si ce n'est que dans ma property  j'ai ce morceau de code :

if (this.Parent != null)

this.Parent.Focus();

Eh bah le bug viens de là :

le focus () et le select() appelle tout deux la méthode ActiveControl qui reset la position des scrollbars. Etant dans un contexte de Drag and Drop la barre se redeplacait sur la droite d'ou l'effet de va et vient au click.

Bilan :

Pas de focus et pas de select dans un click Down si vous êtes dans un panel autoscrollé !

Faite le test avec un panel autoscrollé et une picturebox avec une grande image. Faite un bouton qui fait focus sur le picturebox ou un select. Les scrollbars seront remises à zéro.

 

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

Pas de commentaires
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- TechDays Paris 2012 : Session pleinière jour 3 par Blog Technique de Romelard Fabrice le 02-09-2012, 11:01

- Mishra Reader : un lecteur RSS très Zune Style en Open Source ! par Cyril Sansus le 02-09-2012, 08:28

- [framework 4] Les Tasks et le Thread UI par Fathi Bellahcene le 02-09-2012, 00:33

- Workflow Foundation 3 a un pied dans la tombe par Blog de Jérémy Jeanson le 02-08-2012, 22:15

- TechDays Paris 2012 : Nouvelles tendances du poste de travail - Bring Your own PC par Blog Technique de Romelard Fabrice le 02-08-2012, 19:42

- TechDays Paris 2012 : System Center Service Manager 2012 Vue d’ensemble par Blog Technique de Romelard Fabrice le 02-08-2012, 17:32

- TechDays Paris 2012 : Pleinière second jour par Blog Technique de Romelard Fabrice le 02-08-2012, 16:23

- TechDays Paris 2012 : Retour d'expérience sur la mise en place d'un Cloud Privé par Blog Technique de Romelard Fabrice le 02-08-2012, 16:04

- TechDays Paris 2012 : Comment SharePoint a sauvé mes TechDays par Blog Technique de Romelard Fabrice le 02-07-2012, 23:59

- Perspective 3.0 pour Silverlight 5.0 par Perspective le 02-07-2012, 22:39