guruthor
Messages postés8Date d'inscriptionmardi 18 mai 2004StatutMembreDernière intervention16 mai 2011
-
1 mars 2011 à 00:53
guruthor
Messages postés8Date d'inscriptionmardi 18 mai 2004StatutMembreDernière intervention16 mai 2011
-
1 mars 2011 à 15:49
Bonjour tous,
je suis débutant en C# (et en C++ je suis pas vraiment meilleur) et j'aimerais développer un composant mais je ne sais comment faire.
Je m'explique :
j'ai une application avec côte à côte une listbox et une picture box
les deux contrôles sont de même hauteur
le nombre d'éléments dans la listbox peut augmenter ou diminuer, quitte à faire apparaitre un ascenseur
en gros j'aimerais pouvoir dessiner des choses en face de chaque ligne et que :
1. d'une part quand j'ajoute des éléments à la listbox, la hauteur de la picture box augmente (quitte à ce qu'apparaisse un ascenseur)
2. que lorsque je me "déplace" dans la listbox, c'est à dire lorsque je manipule l'ascenseur, la picturebox reste "en face" de la textbox pour que les dessins que je trace dessus reste "en face" des lignes concernées
pour le point 1 : en gros, il me suffit d'ajouter à picturebox1.size le nombre de pixels d'une "ligne" de la listbox, mais après je ne sais pas comment lié l'ascenseur de la listbox à celui du "conteneur" de la picture box (je pense qu'il faut mettre la picture box dans un conteneur de taille variable)
il faudrait récupérer l'évènement "déplacement d'ascenseur" de la listbox et le lier au déplacement de l'ascenseur du conteneur de la picture box.
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 1 mars 2011 à 12:03
Bonjour,
C'est effectivement un besoin très compliqué que tu nous exposes là.
Peux-tu nous donner plus détail pour que l'on visualise la chose ?
Pourquoi veux-tu que ta "listbox" fasse agrandir la picturebox ? (quel est le but derrière).
Pourquoi ne pas partir vers une solution en WPF ? (XAML)
J'ai ouïe dire que WPF permettait de faire des trucs touchy de ton style.
Ainsi, je te propose de mettre des images directement dans chaque item ton listbox (de ce que j'ai vu, cela me paraît facilement réalisable avec WPF car on peut inclure des contrôles dans des contrôles à l'infini [et difficile voire impossible en WinForm]).
Cela te conviendrait-il et couvrerait-il tes besoins ?
Sinon, il te faudra effectivement coder à la main. Pour ce faire, voici un événement qui pourrait t'intéresser: ScrollBar.Scroll.
Bon développement,
Billou_13
--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
guruthor
Messages postés8Date d'inscriptionmardi 18 mai 2004StatutMembreDernière intervention16 mai 2011 1 mars 2011 à 15:49
Voici un imprimé d'écran :
on notera
- la listbox à gauche en blanc
- le panel en gris foncé contenant la picture box en bleu
en gros j'ai deux ascenseurs et je voudrais les "synchroniser"
c'est à dire qu'ils soient toujours au même niveau car je veux que ce que je dessine sur la picturebox (là j'ai fait des traits pour simplifier) soit "en face" de l'élément correspondant de la listbox
Le problème de l'agrandissement c'est pas grave, j'arrive à gérer. Ma question porte plus (et c'est une question générale) sur "comment synchroniser 2 ascenseurs qui sont sur 2 controls différents"
En gros :
a. comment connaitre "l'état" du premier ascenseur : descendu à 50% par exemple
b. comment régler "l'état" du deuxième, exemple : je veux qu'il soit à mi-chemin
WPF ? connait pas :~(
je vais me renseigner mais là, maintenant que mon truc est codé...
Le scrollbar event : oui pourquoi pas, sauf que listbox ne le déclenche pas !!
du coup je suis en train de chercher comment intercepter tout de même le message. Je crois qu'il faut "overridé" la fonction d'interception des messages. Ca je peux encore le faire, mais ça ne me dit toujours pas comment régler le "niveau" de l'autre ascenseur.