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

VC++ .NET Discussion :

Donner le Focus à un Usercontrol dupliqué


Sujet :

VC++ .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Analyse système
    Inscrit en
    Septembre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Septembre 2018
    Messages : 7
    Par défaut Donner le Focus à un Usercontrol dupliqué
    Bonjour à tous !

    Cela fait 2 jours que je me prends la tête pour quelque chose qui parrait tellement simple mais qui en réalité pour moi savère une grosse galère.

    J'ai une Form1 qui contient un Flowlayoutpanel1 dans le quelle se duplique un Usercontrol qui contient une Checkbox, une Textbox et un bouton Delete.

    "La Checkbox sert à afficher le bouton Delete"

    A chaque fois que l'on scanne une référence dans la textbox automatiquement le Usercontrol se duplique en dessous et ainsi de suite.

    Le problème arrive maintenant !

    Imaginons que je viens de scanner "x" référence et que tout d'un coup je me trompe et que je dois supprimer une ligne.

    Je clique sur ma Checkbox de la ligne a supprimer et ensuite je clique sur le bouton Delete.

    Mais maintenant mon Focus n'est plus sur la Textbox de mon dernier Usercontrol tout en dessous.

    J'ai déjà tenté de mettre textbox1.select sur mon bouton delete mais automatiquement ses la textbox1 de mon usercontrol tout en haut de la liste qui est sélectionné.

    Hors que moi je cherche que ça soit le dernier tout en bas de ma liste.

    J'ai déjà tenté de faire une commande pour récupérer qui avait en dernier le Focus mais cela n'a pas fonctionné non plus.

    Je précise aussi que a chaque fois qu'un usercontrol est validé via la touche enter, automatiquement la textbox1 du control précédent passe en Enabled = False

    Donc à chaque fois dans mon flowlayoutpanel je n'ai qu'une seul textbox1 qui est Enabled = True. Je ne sais pas si cela peut donner une solution pour la retrouver et lui donner le focus.

    Si quelqu'un aurait une solution à me présenter ou une piste pour que je puisse corriger se problème je serai vraiment très Heureux !

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Déjà, comment gères-tu la liste de tes usercontrol? Laisses-tu entièrement le flowlayoutpanel gérer tout ça, ou maintiens-tu une liste séparée avec laquelle tu updates le flowlayoutpanel?
    Enfin toujours est-il, je pense que pour la gestion de ton bouton Delete du devrais:
    1. Trouver le usercontrol qui a le focus, ou simplement le premier usercontrol coché
    2. Trouver le premier usercontrol non-coché après celui-ci, mémoriser la référence
    3. Supprimer ce qu'il faut supprimer
    4. Faire un Select() sur la textbox du usercontrol mémorisé en 2.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Analyse système
    Inscrit en
    Septembre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Septembre 2018
    Messages : 7
    Par défaut
    Salut Medinoc,
    Alors pour commencer je laisse gérer mon flowlayout panel.
    En gros à chaque fois que la textbox est validé avec les touche enter je demande de rajouter un nouveau usercontrol juste en dessous.
    Pour le bouton delete je l'ai rajouter directement sur le usercontrol pour justement éviter de devoir chercher toute les checkbox sélectionner dans la liste. Donc chaque ligne a son propre bouton delete.
    Le problème est que je ne comprends pas comment je pourrais rechercher quelques choses dans mon flowlayout panel hors que tous mes usercontrol se nomme usercontrol1.
    Je suppose qu'il devrait y avoir une commande pour dire sélectionner le dernier usercontrol dans le flowlayoutpanel ou quelques choses de se genre.
    J'ai déjà tenté tellement de commande et de possibilité qu'à force je me dit que cela n'est pas possible. En tout cas merci de te pencher sur mon problème.

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    As-tu essayé la propriété Controls de ton FlowLayoutPanel?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Analyse système
    Inscrit en
    Septembre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Septembre 2018
    Messages : 7
    Par défaut
    Oui j'ai même commencé par ça. Je ne sais pas te fournir mon code exacte car je ne suis pas sur mon pc actuellement mais c'était quelques choses comme ça :

    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim count As Integer = CountVisibleChildControls(Of UserControl1)(Form1.FlowLayoutPanel1)
          Dim ctrls() As Control = Form1.FlowLayoutPanel1.Controls.Find("usercontrol1", False)
     
          For Each c As Control In ctrls
              c.Select()
          Next
     
          If (ctrls.Length > 0) Then
              ctrls(count).Select()
          End If
     
      End Sub

    C'est juste un exemple. Mais le code n'a strictement eu aucun effet. Pas d'erreur non plus.

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 487
    Par défaut
    C'est pas cool de nous snober.

    Et Ici, c'est du C++/CLI, pas du VB.NET.

    Pouvez-vous répondre à mes questions, avant que je demande le transfert vers le bon forum ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.net] Donner le focus a un Form
    Par Manix dans le forum Windows Forms
    Réponses: 23
    Dernier message: 01/08/2005, 02h59
  2. Donner le focus à un JPanel dans un autre JPanel
    Par Azanael dans le forum Agents de placement/Fenêtres
    Réponses: 17
    Dernier message: 21/06/2005, 23h34
  3. donner le focus sur un composant dont la fenetre est invisib
    Par yoghisan dans le forum Composants VCL
    Réponses: 12
    Dernier message: 17/06/2005, 16h27
  4. [debutant]donner le focus
    Par adilou1981 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/06/2005, 17h30
  5. Réponses: 4
    Dernier message: 18/05/2005, 14h08

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