none
Fenetre non déplacable & widget dans ma fenetre RRS feed

  • 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.
    samedi 25 juillet 2009 18:24

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#
    dimanche 26 juillet 2009 08:59
    Modérateur

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#
    dimanche 26 juillet 2009 08:59
    Modérateur
  • Merci beaucoup de votre aide.
    dimanche 26 juillet 2009 09:32
  • 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é.
    dimanche 26 juillet 2009 17:34
  • 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#
    dimanche 26 juillet 2009 17:40
    Modérateur