2010-07-07 6 views
0

J'ai un formulaire VB .NET avec un contrôle de séparateur, et je veux enregistrer sa position entre les exécutions de programme. Je gère actuellement l'événement SplitterMoved et stocke le SplitterDistance. Puis, au démarrage du programme, je règle le SplitterDistance sur la valeur enregistrée. Cependant, parfois le programme redimensionne le séparateur, en augmentant l'événement SplitterMoved et en écrasant ma distance sauvegardée. J'ai plusieurs séparateurs sur plusieurs onglets dans un contrôle de tabulation, et chaque fois que l'utilisateur accède à un nouvel onglet pour la première fois, l'événement SplitterMoved se déclenche.Événement qui se déclenche uniquement lorsque l'utilisateur déplace le séparateur?

Y a-t-il un événement que je peux utiliser qui se déclenchera uniquement lorsque l'utilisateur déplace le séparateur, et non lorsque le programme déplace le séparateur? J'ai essayé MouseUp, mais quand cet événement se déclenche, le nouveau SplitterDistance n'est pas encore défini.

Répondre

0

Non, il n'y a pas d'événement distinct, car le séparateur a été déplacé de. Étant donné que le séparateur doit être au même endroit qu'avant, il ne doit pas modifier la valeur que vous avez stockée. Vérifiez-vous l'objet sender pour vous assurer que vous mettez à jour la bonne position du séparateur?

0

Les SplitterEventArgs fournissent à la fois les coordonnées du séparateur et les coordonnées de la souris.

Je suppose que pour les événements SplitterMoved non déclenchés par l'utilisateur, les coordonnées de la souris seraient hors de portée.

+0

SplitterEventArgs a les mêmes arguments, il ne dépend pas s'il a été déclenché par l'utilisateur ou si la taille a changé. – qub1n

Questions connexes