Méthode Resize...Comment faire ? :(

Résolu
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 septembre 2008 - 15 avril 2005 à 09:46
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 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é..."

16 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
15 avril 2005 à 10:20
Salut,

Pour modifier la taille de ton controle, tu as juste à modifier les valeurs de Height et Width.

Cocoricoooooooo !!!!
coq
MVP Visual C#
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
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

Cocoricoooooooo !!!!
coq
MVP Visual C#
3
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 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é..."
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
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#
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 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é..."
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 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é..."
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
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

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 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:



private
void Panel_List_Hist_Resize(
object sender, System.EventArgs e)
{
Panel_List_Hist.Height = Size.Height;
}

parce que je vois pas vraiment comment lui dire = <nouvelle_hauteur>...sachant que je sais pas différencier l'ancienne valeur de la nouvelle...

"Un seul Être vous manque, et tout est dépeuplé..."
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
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 ?

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
15 avril 2005 à 11:58
je voulais dire :
Par contre : tu as un panel juste pour contenir le ListBox ?

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 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é..."
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 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é..."
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
15 avril 2005 à 12:29
Et si ton but est de faire du redimensionnement comme lors de design, regarde un poeu cet article : Simple Runtime Control Sizing and Dragging Class

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 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é..."
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 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é..."
0
sphaxslayer Messages postés 216 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 17 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é..."
0
Rejoignez-nous