IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Soucis avec déplacement de Form Secondaires


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Points : 52
    Points
    52
    Par défaut Soucis avec déplacement de Form Secondaires
    Bonjour à tous,

    PROBLÈME avec Création De Formulaire depuis VB.net


    J’ai un module qui contient (même si ce n’est pas terrible) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Public NvForm As New FLux_Form()
    J’ai un form principale :
    Nom : form_principale.jpg
Affichages : 274
Taille : 3,2 Ko

    Je crée plusieurs form secondaires :
    Nom : form_secondaires.jpg
Affichages : 242
Taille : 8,4 Ko
    Code dans form_Principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For i = 0 To cpt_flux - 1
         Dim NvForm As New FLux_Form()
         NvForm.Show()
        ‘NvForm.ShowDialog() --> Showdialog ne fonctionne pas !!!!
        Next
    Ce qui donne en résultat et à l'affichage:
    Nom : resultat.jpg
Affichages : 245
Taille : 9,5 Ko

    Jusqu’à là cela ne fonctionne pas trop mal…
    Là où cela se corse, je voudrais en déplaçant la form_Principale faire suivre les form_secondaires.
    Cela fonctionne avec une seule form_secondaire mais pas avec plus !!!

    Code de déplacement dans form_principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Dim mouse_offset
    Private Sub Principal_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
            mouse_offset = New Point(-e.X, -e.Y)
    End Sub
     
    Private Sub Principal_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
        If e.Button = System.Windows.Forms.MouseButtons.Left Then
             Dim mousePos As Point = Control.MousePosition
             mousePos.Offset(mouse_offset.X, mouse_offset.Y)
             Location = mousePos
             '------- Déplacement Flux_Form avec principal
             NvForm.Location = New Point(Me.Location.X, Me.Location.Y + 30)
        End If
    End sub
    EN RÉSUMÉ:
    Je n’arrive pas trouver l’astuce pour pouvoir déplacer les secondaires en même temps que la principal sauf lorsqu’il n’y a qu’une secondaire où cela fonctionne !!!

    Pouvez-vous m'aider ?

    Merci à tous.

    Cordialement.


  2. #2
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Points : 52
    Points
    52
    Par défaut re
    re

    Voici mon code base (Visual Studio 2015 - VB.Net) qui montre mon soucis:

    Donc:
    * une seule Form Secondaire: elle se déplace avec la form Principale
    * Plus d'une Form Secondaire: pas déplacement des nouvelles avec la Form Principale

    Merci à vous.

    Cordialement.

    Form_Dynamiques.zip

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    NvForm correspond à la dernière instance des Forms secondaires créées. Tu peux stocker l'ensemble des tes Forms dans une liste et au déplacement de ta Form principale, boucler sur cette liste pour déplacer les forms secondaires.

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Points : 52
    Points
    52
    Par défaut re
    re

    merci pour la réponse.

    Mais je ne vois pas comment stocker ces instances form !!!!

    Si vous avez une idée, merci.

  5. #5
    Membre éclairé Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 336
    Points : 667
    Points
    667
    Par défaut
    Salut,
    Tu créer une Liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim MyFormList as New List(Of Flux_Form)
    Puis pour ajouter un formulaire à la liste :
    Pour boucler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For each MyForm as Flux_Form in MyFormList
     
    Next
    Merci de ainsi que d'utiliser les boutons et

  6. #6
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Points : 52
    Points
    52
    Par défaut
    Ok, super, merci.

    Je vais tester cela et je reviendrai donner mes résultats...



    --Edit :

    Bon, je n'y arrive pas vraiment car j'avoue ma méconnaissance dans le domaine dynamique.

    Voilà ce que j'ai et cela déplace bien toutes Form Secondaires mais elle se superposent puisque en Y la valeur est de 25.
    J'ai essayé d'incrémenter de +25 à l'interieur du For Each mais cela ne fonctionne pas et mes form disparaissent de l'écran.
    Je ne vois pas comment utiliser le Count de la boucle !!!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For Each Myform As FLux_Form In MyFormList
                    Myform.Location = New Point(Me.Location.X, Me.Location.Y + 25)
                Next
    J'ai essayé avec 2 form secondaires et MyFormList est bien à 2...


  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Si tu utilise des formulaire mdi tu peux les organiser en cascade mosaïque vertical ou horizontal!

  8. #8
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Points : 52
    Points
    52
    Par défaut re
    Ok

    Mais jamais utilisé de MDi, donc je vais devoir apprendre et fouiner sur le net pour savoir comment cela se code...

    Merci pour l'info...


  9. #9
    Invité
    Invité(e)
    Par défaut
    Tu ajoutes à ton projet un formulaire enveloppe mdi.

    Dans tes userform tu actives à true la propriété mechild!
    http://www.dotnetheaven.com/article/...s-using-vb.net

    https://msdn.microsoft.com/en-us/lib...v=vs.110).aspx
    Dernière modification par Invité ; 03/12/2017 à 21h23.

  10. #10
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Points : 52
    Points
    52
    Par défaut re
    Ok Merci, je vais étudier tout ça...

    Encore Merci.

    Cordialement.

  11. #11
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Points : 52
    Points
    52
    Par défaut re
    Re moi

    Le principe de MDI semble une option possible et plus simple pour gérer mon projet, mais j'aimerai rendre le form Parent transparent et cela ne semble pas si simple !!!!

    Je cherche sur le net.

    J'ai trouvé un code qui fonctionne mais en C et pas évident à convertir en Vb.net:

    https://www.codeproject.com/Articles...DI-Parent-Form

    merci.

  12. #12
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Citation Envoyé par didpoy Voir le message
    Je n’arrive pas trouver l’astuce pour pouvoir déplacer les secondaires en même temps que la principal sauf lorsqu’il n’y a qu’une secondaire où cela fonctionne !!!

    Pouvez-vous m'aider ?
    J'aurais une question : pourquoi utiliser différents formulaires? Des contrôles utilisateurs pourraient-ils suffire?

  13. #13
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Points : 52
    Points
    52
    Par défaut re
    Chaque form secondaire doit pouvoir recevoir des informations différentes et surtout qu'elles puissent être déplacées sur le bureau aux endroits choisis par l'utilisateur et agrandies, réduites indépendamment du form principal...

    Le fait d'utiliser la méthode ou pas MDI ne résout pas le problème.

    Pour exemple, il y a quelques années un petit logiciel lecteur de Flux était basé sur ce principe: Klipfolio mais celui-ci n'étant plus développé et ne fonctionne plus à partir de Windows 8.
    On le trouve encore en téléchargement par recherche sur moteur de recherche.

    C'est un peu sur ce principe que j'aimerai développer mon projet...


  14. #14
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim i As Integer = 1
    For Each Myform As FLux_Form In MyFormList
           Myform.Location = New Point(Me.Location.X, Me.Location.Y + i * 25)
           i = i + 1
    Next

    Chaque form secondaire doit pouvoir recevoir des informations différentes et surtout qu'elles puissent être déplacées sur le bureau aux endroits choisis par l'utilisateur et agrandies, réduites indépendamment du form principal...
    Par contre, comment tu vas gérer le cas où l'utilisateur a volontairement déplacé une form secondaire sachant que la position du formulaire principale agit sur celle des formulaires secondaires?

  15. #15
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Points : 52
    Points
    52
    Par défaut re
    C'est la bonne question....!!!!

    Il est vrai que dés que l'on bouge le form principal les secondaires bougent !!!!

    Il se peut qu'il existe une autre manière d'aborder mon projet et que cette méthode ne soit pas la bonne

    il se peut aussi que cela ne soit pas possible, bien que tout est possible en programmation. Klipfolio semble avec été développé en VB.net donc eux ils ont réussi !!!

    Peut-être utiliser MDI et ne pas sortir les Child du parent et seulement les faire bouger entre elles dans le parent et mémoriser leurs emplacements !

    Pas évident, en fait...


  16. #16
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    De ce que j'ai vu sur Klipfolio (j'ai juste checké Google Image ), il s'agit "simplement" d'un dashboard. Autrement dit, un vue synthétique d'un ensemble de données. Les données sont affichée dans des genres de conteneurs suivant leur thème.

    Si c'est ce genre de chose que tu veux faire, il te faudra effectivement utiliser des contrôles utilisateur. La question du placement pourra être résolue en utilisant des layouts.

    Concernant la problématique de l'affichage agrandit, tu peux simplement mettre un bouton dans ton contrôle utilisateur qui affiche une fenêtre contenant non pas la synthèse, mais le détail des informations.

    Qu'en penses-tu?

  17. #17
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Points : 52
    Points
    52
    Par défaut re
    Ne pas confondre le nouveau Klipfolio et l'ancien qui est petit logiciel qui permet d'avoir ces flux sur le bureau !

    Voici mon lien perso pour le DL: http://didpoy.free.fr/Klipfolio_PD_Install.exe

    Merci.

  18. #18
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Points : 52
    Points
    52
    Par défaut re
    Bonjour à tous

    Voici mon code non finalisé complet en joint.
    RSS Info.zipRSS Info.zip

    Bon, il n’est pas propre et il est brut de pomme…
    Je l’améliorerai quand il fonctionnera correctement.

    SOUCIS :
    - Lorsque je mets le pointeur de la souris sur les chevrons de déplacement, je n’ai pas de toolstip qui s’affichent (Déplacer) bien qu’ils soient paramétrés.
    - Le déplacement du form Principal avec les form Filles n’est pas fluide et il est lent !!!!
    - Difficulté pour trouver le codage pour permuter ces forms entre elles.

    Merci de votre aide si vous avez le temps.


Discussions similaires

  1. Souci avec une windows form.
    Par dustw3 dans le forum C++/CLI
    Réponses: 1
    Dernier message: 22/04/2013, 16h41
  2. form secondaire s'affiche avec la form principale
    Par rec82 dans le forum Débuter
    Réponses: 8
    Dernier message: 03/01/2013, 13h50
  3. [HTML 4.0] souci avec imbrication form et table
    Par rapanui dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 08/06/2009, 21h04
  4. Soucis avec un POST enctype="multipart/form-data"
    Par Goupo dans le forum Langage
    Réponses: 2
    Dernier message: 17/04/2009, 18h21
  5. Soucis avec mise en forme conditionnelle
    Par icecube216 dans le forum Access
    Réponses: 4
    Dernier message: 04/09/2006, 18h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo