sphaxslayer
Messages postés216Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention17 septembre 2008
-
15 avril 2005 à 09:46
sphaxslayer
Messages postés216Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention17 septembre 2008
-
15 avril 2005 à 15:57
Bonjour tout le monde
Voilà, en fait j'ai un problème, je ne sais pas du tout comment implémenter la méthode Resize de ma ListBox...Mon application se présente comme suit:
j'ai une form de base dans laquelle j'ai 3 panels: l'un à gauche servant pour le menu, l'autre en bande sur la partie supérieure (le menu ne va pas jusqu'en haut de la form, il s'arrete à ce panel) et enfin le reste est le 3eme panel. Mon probleme: mon panel du haut (qui prend donc toute la largeur de la form...) contient la ListBox que j'aimerais redimensionner. Je voudrais s'il vous plait savoir si quelqu'un pouvait m'expliquer un peu comment faire pour coder cette fameuse méthode Resize() car je n'en ai pas la moindre idée...:(
Autrement j'avais pensé au Resize du panel si pour la ListBox y'a des choses délicates et mettre la ListBox en Fill dans le panel...mais j'en arrive au même problème, je sais pas du tout quoi mettre dans la méthode...merci à vous pour votre aide
sphaxslayer
PS: je développe sous Visual Studio C#
"Un seul Être vous manque, et tout est dépeuplé..."
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 15 avril 2005 à 12:24
Je crois que je me melange les pinceaux lol
Si j'ai bien compris ce que tu veux essaie ça dans un nouveau form pour voir :
Ajout d'un panel nommé "panel_Top" => Dock = Top
Ajout d'un panel nommé "panel_Middle" => Dock = Top
Ajout d'un splitter nommé "splitter_MiddleBottom" => Dock = Top
Ajout d'un panel nommé "panel_Bottom" => Dock = Fill
Ajout du listBox dans le panel "panel_Bottom" => Dock = Left
Ajout d'un panel dans le panel "panel_Bottom" => Dock = Fill
sphaxslayer
Messages postés216Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention17 septembre 2008 15 avril 2005 à 10:33
ahh...je crois avoir compris...en fait dans Resize, il va détecter que je lance le redimensionnement et en relâchant, il actualisera les données Height et Width...c'est bien ça...? mais dans ce cas, comment je récupère la postion du curseur au moment où je lâche le clic...? tu sais s'il y a une méthode pour ça?
De même, j'ai eu l'idée d'essayer avec un splitter sinon...mais j'dois pas savoir m'en servir car il apparait comme une bande et j'ai pas réussi à faire que le redimensionnement marche...j'ai utilisé Anchor et Dock mais lol j'suis trop nul visiblement
"Un seul Être vous manque, et tout est dépeuplé..."
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 15 avril 2005 à 10:41
L'evetn Resize est justement déclenché par la modification de la taille du controle.
Toi tu veux pouvoir redimensionner comme on le fait dans le designer ?
Cocoricoooooooo !!!!
coq
MVP Visual C#
Vous n’avez pas trouvé la réponse que vous recherchez ?
sphaxslayer
Messages postés216Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention17 septembre 2008 15 avril 2005 à 10:52
En fait, voilà grossièrement la tête de mon appli...(bon euh c'est de l'art dans une autre dimension )
======================================
| |
| |
|'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''|
| |
| |
| |
|''''''''''''''''''''|''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''|
| | ___________________________________ |
| | |
| | |
| | |
| | |
| | |
=====|================================
le rectangle en bas a gauche c mon menu, tout en haut, c un panel dont j'ai pas parlé parce qu'il me gene pas il doit rester fixe, en bas a droite, le grans rectangle c mon panel n°3, qui prend le reste de la place et j'ai pas parlé de la fine bande a droite du menu, c'est un panel dont la taille doit également rester fixe...et donc la bande au centre, c'est le panel ListBox...Ce que je cherche à faire exactement, c'est un peu comme sous le designer pour le redimensionner sur la hauteur et laisser la largeur pleine, mais de plus, il faut que la fine bande adjacente a la liste box reste fixe, et que ce soit le panel n°3 qui remonte lorsque je réduis la taille de la ListBox...(par suite, j'étirerais le menu, c'est la meme chose...)
j'espère que c'est pas trop fouilli :s en tous cas merci pour ton aide (encore )
"Un seul Être vous manque, et tout est dépeuplé..."
sphaxslayer
Messages postés216Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention17 septembre 2008 15 avril 2005 à 10:54
oups...je vois que ca n'a pas eu l'effet voulu...lol bon bah disons que tu reserres les barres de droite de façon a obtenir une espèce de rectangle (la form)...désolé pour le 'Mastering Design' lol
"Un seul Être vous manque, et tout est dépeuplé..."
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 15 avril 2005 à 11:42
Donc dans la méthode associée à l'event Resize du ListBox, affecte la hauteur de ton ListBox en hauteur du Panel n°3, ainsi il suivra le mouvement.
Enfin là je crois que je n'ai pas tout compris lol
sphaxslayer
Messages postés216Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention17 septembre 2008 15 avril 2005 à 11:49
lol je suis pas très très ecplicite non plus...En fait, je pense que si j'arrive juste à redimensionner mon Panel_LstBox qui contient la ListBox, cette dernière ayant l'attribut dock à 'Fill', ça devrait aller...ensuite c'est une question de calcul je pense, j'aurais qu'à ancrer mon menu et mon Panel 3 au dessus....nan le vrai gros problème que j'ai c'est cette méthode resize...en plus je viens de voir qu'à l'exécution bah...c'est pas cliquable! donc pas redimensionnable...sinon j'ai essayé de voir pour la méhode au niveau code...est-ce que ça te semble correct un truc de ce genre:
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 15 avril 2005 à 11:58
L'event Resize est déclenché après le redimensionement, donc là ton code ne sert strictement à rien, vu que tu te sert de l'event du Panel lui même.
Je parlais de se servir de l'event Resize du ListBox pour redimensionner le Panel :
Panel_List_Hist.Height = leListbox.Height;
Par contre : tu as un panel juste pour contenir les ListBox ?
sphaxslayer
Messages postés216Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention17 septembre 2008 15 avril 2005 à 12:06
bah en fait oui...j'ai mis un Panel parce que j'ai mis le Dock à Fill et je veux pas que ça n'emplisse tout, d'une part, et de deux, comme je te l'ai dit, j'avais pensé à des Splitters...mais euh c'est pas du tout ça lol
je vais essayer ton code, merci de m'aider! ;)
"Un seul Être vous manque, et tout est dépeuplé..."
sphaxslayer
Messages postés216Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention17 septembre 2008 15 avril 2005 à 12:22
hmm..je crois avoir un autre probleme....j'ai aucun moyen de redimensionner la List ni le Panel...rien n'y fait, je clique sur les 4 bords, de chacun d'eux, rien ne bouge...il y a surement quelque chose que je n'ai pas fait...
encore une fois merci de passer du temps pour m'aider
"Un seul Être vous manque, et tout est dépeuplé..."
sphaxslayer
Messages postés216Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention17 septembre 2008 15 avril 2005 à 12:34
Merci pour ton résumé, en fait c'est presque ça, sauf que la ListBox est dans le panel Bottom si tu préfère, et qu'à sa place c'est le panel menu...mais le principe est à peu pres ça, enfin je crois...mais je ne comprends pas pourquoi ça ne marche pas...j'avais fait quelque chose du genre avec le splitter...c'est étrange...merci pour l'article :)
"Un seul Être vous manque, et tout est dépeuplé..."
sphaxslayer
Messages postés216Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention17 septembre 2008 15 avril 2005 à 14:06
C'est encore moi...J'ai réussi à mettre le splitter après une lutte acharnée avec les propriété Dock et Anchor de mes panels...je pense que c'est encore tout à fait stable...mais bon, j'ai un autre souci qui m'empêche d'avancer:
le splitter est bien actif, la souris change de curseur en passant dessus, mais je n'arrive ni à monter ni à descendre, ou plutôt ni réduire ni agrandir ma ListBox...:(:(:(
j'suis décidément pas bon lol enfin il faut bien apprendre
"Un seul Être vous manque, et tout est dépeuplé..."
sphaxslayer
Messages postés216Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention17 septembre 2008 15 avril 2005 à 15:57
Victoire !!
J'ai enfin réussi à obtenir ce que je voulais...euh comment, en clair, je saurais pas vraiment expliquer...Simplement le 2ème post de Coq que j'ai marqué comme accepté (bien que tous m'ont aidé...) m'a permis de réussir je pense...ce que j'ai fait c'est que j'ai refait une form, et je suis reparti de zéro, voyant que ca marchait avec son exemple et pas avec mon appli...je PENSE que ça devait venir d'un ordre d'affectation des panels et de leurs propriétés de Dock...mais je peux pas l'affrmer avec certitude...en tous cas j'ai réussi grâce au splitter, donc un grand merci à toi Coq!
Mon dernier petit problème qui reste, c'est que la taille du splitter n'est pas du tout ergonomique...quand je le bouge, il grossit aussi etc...MAIS! je n'ai pas encore analysé le problème de près...ça doit être un réglage à faire dans les MinSize et MinExtra ou quelque chose du genre...
Enfin j'en profite pour dire que Nix et tous ses collaborateurs font vraiment du bon boulot avec ce jeu de sites, félicitations!
"Un seul Être vous manque, et tout est dépeuplé..."