Meilleur auteur de réponses
Fenetre non déplacable & widget dans ma fenetre

Question
-
Bonjour à tous,
Je réalise une sidebar avec quelques fonctions telle que la lecture de flux RSS ...
Je débute en C# et je réalise ca sous Visual Studio 2008. J'ai une question à soumettre à votre expertise.
Je réalise une application windows.form. J'aimerai tout d'abord rendre ma fenetre non déplacable. De plus j'aimerai savoir comment on s'y prend pour insérer d'autres objets au sein de la fenetre.
Dans mes autres classes j'aimerai construire des widgets que je peux insérer à ma guise dans la fenetre, j'aimerai savoir comment on s'y prend en C#. Mes classes doivent elles hériter d'une classe en particulier.
Merci d'avance pour votre aide.
Réponses
-
Bonjour,
1/Pour rendre votre fenêtre déplacable, il faut récupérer les coordonnées de votre fenêtre que vous voulez utiliser (par exemple au chargement (Load) de la fenêtre).
emplacementDefinitif = this.Location;
Ensuite, traitez l'événement LocationChanged afin de forcer la position de cette fenêtre :
this.Location = emplacementDefinitif
2/Pour créer vos Widget, je vous conseille de créer des contrôles utilisateurs (UserControl) qui représente vos widget.
Ensuite pour les charger et les placer dans votre fenêtre, il suffit de les instancier :
MonWidget widget; widget = new MonWidget();
Et de l'ajouter comme enfant d'un contrôle. Cela peut être votre fenêtre, mais aussi un Panel si vous souhaitez le positioner à un endroit particulier.
this.Controls.Add(widget); //ou monPanel.Controls.Add(widget);
Cordialement
Gilles TOURREAU - MVP C#- Marqué comme réponse Gilles TOURREAUModerator dimanche 26 juillet 2009 14:14
Toutes les réponses
-
Bonjour,
1/Pour rendre votre fenêtre déplacable, il faut récupérer les coordonnées de votre fenêtre que vous voulez utiliser (par exemple au chargement (Load) de la fenêtre).
emplacementDefinitif = this.Location;
Ensuite, traitez l'événement LocationChanged afin de forcer la position de cette fenêtre :
this.Location = emplacementDefinitif
2/Pour créer vos Widget, je vous conseille de créer des contrôles utilisateurs (UserControl) qui représente vos widget.
Ensuite pour les charger et les placer dans votre fenêtre, il suffit de les instancier :
MonWidget widget; widget = new MonWidget();
Et de l'ajouter comme enfant d'un contrôle. Cela peut être votre fenêtre, mais aussi un Panel si vous souhaitez le positioner à un endroit particulier.
this.Controls.Add(widget); //ou monPanel.Controls.Add(widget);
Cordialement
Gilles TOURREAU - MVP C#- Marqué comme réponse Gilles TOURREAUModerator dimanche 26 juillet 2009 14:14
-
-
Par contre ceci ne permet pas d'ajouter plusieurs User Control dans ma fenêtre en les empilant horizontalement par exemple.
PS : C'est bon j'ai trouvé j'ai ajouté un layout a ma fenetre. Désolé pour mes questions je début en C# et ca a l'air quand meme bien différent du C++ auquel je suis plus habitué. -
Bonjour,
Dans ce cas utilisez un contrôle de type FlowLayoutPanel et ajoutez vos Widget dedans. Vous pouvez utilisez d'autres contrôles "conteneur" que Panel ou FlowLayoutPannel... A vous de prendre ce que vous recherchez exactement.
Cordialement
Gilles TOURREAU - MVP C#