Utilisation d'une ScrollBar

Signaler
Messages postés
15
Date d'inscription
vendredi 20 juin 2003
Statut
Membre
Dernière intervention
29 août 2003
-
Messages postés
233
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
25 octobre 2010
-
Bonjour,

J'ai quelques problème dans l'utilisation de ma barre de défilement et j'aimerais savoir si qq1 peut me donner un coup de main.
Je vous remercie d'avance pour votre aide.

Cordialement
Morpheus51neo

Le but est d'aider son voisin pour que son voisin nous aide en retour.

10 réponses

Messages postés
233
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
25 octobre 2010

Si tu detaillais un peu ton probleme?
Messages postés
15
Date d'inscription
vendredi 20 juin 2003
Statut
Membre
Dernière intervention
29 août 2003

Voilà, je souhaite connaitre le méthode qui permet de savoir si la barre bouge ou non. Si elle bouge à droite, j'incrémente sinon je décremente.
Le prob est qu'il m'affiche un message d'erreur.
Le voici :
Une exception non gérée du type 'System.ArgumentOutOfRangeException' s'est produite dans mscorlib.dll

Informations supplémentaires : L'argument spécifié n'était pas dans les limites de la plage des valeurs valides.

Merci pour ton aide

Cordialement
Morpheus51neo

Le but est d'aider son voisin pour que son voisin nous aide en retour.
Messages postés
233
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
25 octobre 2010

Tu peux me montrer un bout de ton code (celui qui utilise les scrollbars)
Messages postés
15
Date d'inscription
vendredi 20 juin 2003
Statut
Membre
Dernière intervention
29 août 2003

Je débute alors il est peut être pas parfait!

private void SbPeriode_Scroll(object sender, System.Windows.Forms.ScrollEventArgs e)
{
string anMois;
int mois;
int annee;
anMois = CDERDateTime.AnneeMois(DatePeriode).ToString();
annee = Convert.ToInt16(anMois.ToString().Substring(0,4));
if (pos > this.SbPeriode.Value)
{
mois = Convert.ToInt16(anMois.Substring(4,2)) + 1;
if (mois > 12)
{
annee += 1;
mois = 1;
}
}
else
{
mois = Convert.ToInt16(anMois.Substring(4,2)) - 1;
if (mois < 1)
{
annee = 1;
mois = 12;
}
}
DatePeriode = new DateTime(01, mois, annee);
}

Voilà!!!
Cordialement
Morpheus51neo

Le but est d'aider son voisin pour que son voisin nous aide en retour.
Messages postés
233
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
25 octobre 2010

J'ai deux remarques à te faire:

la premiere : Y a un bouton code quand tu poste un message, ce qui fait que ton message garde l'indentation...
c'est plus pratique à lire! ;)

la deuxieme, il me semble qu'un controle calendar serait peu-etre interessant ici ...
ou bien une trackbar, mais c'est ton choix... :big)

pour en revenir à ton probleme:
pour savoir quel est le mouvement en cours sur ta scrollbar
le ScrollEventType possede une propriété Type qui te donne le type de scroll en cours (+, -, ++, --, etc....)

pour ton erreur, tu devrais regarder comment tu récupere le moi et l'annee (PS: si ta variable DatePeriode est un Datetime, elle expose des propriétés month et year qui peuvent t'aider ...

En lisant la doc du framework sur la classe DateTime, tu devrai trouver tous ce dont tu as besoin!

8-) Voila!!! 8-)
Messages postés
15
Date d'inscription
vendredi 20 juin 2003
Statut
Membre
Dernière intervention
29 août 2003

Oki merci pour ton aide!
Je ferai attention pour le code la prochaine fois! :blush)
Je te tiens au courant pour savoir si j'arrive à qqch.

Cordialement
Morpheus51neo

Le but est d'aider son voisin pour que son voisin nous aide en retour.
Messages postés
15
Date d'inscription
vendredi 20 juin 2003
Statut
Membre
Dernière intervention
29 août 2003

Je n'arrive pas à utiliser scrollEvnetType!
j'ai vu qu'il y avait quelques options que j'avais besoin mais je n'arrive pas à les utiliser.
Merci pour ton aide!

Cordialement
Morpheus51neo

Le but est d'aider son voisin pour que son voisin nous aide en retour.
Messages postés
233
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
25 octobre 2010

essai ca:
if (e.Type System.Windows.Forms.ScrollEventType.SmallDecrement) label1.Text "Décrément";if (e.Type System.Windows.Forms.ScrollEventType.SmallIncrement) label1.Text "Incrément";


8-)
Messages postés
15
Date d'inscription
vendredi 20 juin 2003
Statut
Membre
Dernière intervention
29 août 2003

Merci ça marche nikel!
Une dernière question :
J'utilise la méthode ThumPosition mais comment faire pour savoir si l'utilisateur bouge de gauche à droite ou inversement?
Existe t'il une méthode ou faut il faire des tests sur la valeur que récupère la ScrollBar?

Cordialement
Morpheus51neo

Le but est d'aider son voisin pour que son voisin nous aide en retour.
Messages postés
233
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
25 octobre 2010

Correct!

A Priori, y a pas de méthode miracle :sad)

:big) essai de comparer la nouvelle valeur de ta scrollbar
(e.newvalue) ou quelque chose dans ce style!) avec
l'ancienne (scrollbar.value)

8-) bye 8-)