Panel et ScrollBar

djcool74 Messages postés 44 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 12 février 2005 - 8 févr. 2005 à 09:29
djcool74 Messages postés 44 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 12 février 2005 - 8 févr. 2005 à 14:41
Bonjour à Tous

Je suis actuellement en train de développer un contrôle utilisateur genre Planning/Agenda.
J'aimerais utiliser des ScrollBars Vertical et Horizontal.

J'ai ajouté un contrôle Panel dans lequel je dessine. Et des ScrollBars. avec le code :



' Création d'un Panel Central



Me.Controls.Add(PanelCentral)

Me.PanelCentral.Location =
New Point(97, 26)

Me.PanelCentral.Size =
New Size(
Me.Size.Width - 98,
Me.Size.Height - 27)
Me.PanelCentral.BackColor = Color.LightSteelBlue


' Création d'une ScrollBar verticale dans ce Panel
VerticalScrollBar.Location =
New Point(PanelCentral.Width - 14, 0)
VerticalScrollBar.Size =
New Size(14, PanelCentral.Size.Height)
Me.PanelCentral.Controls.Add(VerticalScrollBar)



' Création d'une ScrollBar horizontale dans ce PanelHorizontalScrollBar.Location New Point(0, PanelCentral.Size.Height - 14)HorizontalScrollBar.Size
New Size(PanelCentral.Size.Width - 14, 14)
Me.PanelCentral.Controls.Add(HorizontalScrollBar)

Ces ScrollBars sont ajoutés manuellement. Elles ne font pas vraiment partie du Panel. Car un Panel ne peut pas avoir de ScrollBar je crois.

Auirez vous une idée pour pouvoir mettre en relation mes ScrollBars et mon Panel ? C'est à dire pour pouvoir déplacer les éléments dans mon Panel grâce à mes ScrollBars ?

Merci

djcool74
___________________
La misère d'un ami n'est pas plus amusante que le vue d'un jardin dont la flore est mourrante.

2 réponses

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
8 févr. 2005 à 10:34
Il faut que tu connaisses la place utlisée sur le panel par tout ce que tu vas y dessiner.



Généralement, avec la propriété Top du contrôle le plus bas + sa
propriété Height + une marge choisie arbitrairement, tu obtiens une
valeur pas trop mauvaise.



Le raisonnement suivant fonctionne pour la hauteur, comme pour la largeur.

Soit X la valeur de la hauteur prise par tous tes contrôles.



(X - Panel.height) représente la portion de dessin qui ne peut pas être affichée par le Panel.



Si cette valeur est négative, pas besoin de scrollbar.

Si elle est positive, tu peux assigner les valeurs suivantes à ta scrollbar verticale :

Min = 0

Max = X



Un clic sur cette scrollbar verticale devra faire augmenter ou diminuer
la valeur courante de scroll d'un pas que toi seul choisira. (avec un
petit pas, tu scrolles lentement, avec un grand pas, tu scrolles
rapidement).

Et à chaque clic sur la scrollbar verticale, tu fais également augmenter ou descendre ton contrôle Panel sur la feuille.


Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
0
djcool74 Messages postés 44 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 12 février 2005
8 févr. 2005 à 14:41
Merci. En fait, sur l'évènemenr Scroll de ma ScrollBar, j'ai mis :


Private
Sub HorizontalScrollBar_Scroll(
ByVal sender
As
Object,
ByVal e
As System.Windows.Forms.ScrollEventArgs)
Handles HorizontalScrollBar.Scroll



Me.PanelCentral.Left =
Me.HorizontalScrollBar.Value

Me.PanelHoraire.Left =
Me.HorizontalScrollBar.Value



End
Sub

djcool74

La misère d'un ami n'est pas plus amusante que le vue d'un jardin dont la flore est mourrante.
0
Rejoignez-nous