Supprimer un control [Résolu]

Signaler
Messages postés
723
Date d'inscription
dimanche 26 novembre 2006
Statut
Membre
Dernière intervention
23 janvier 2013
-
Messages postés
723
Date d'inscription
dimanche 26 novembre 2006
Statut
Membre
Dernière intervention
23 janvier 2013
-
Salut, j'ai de nouveau une question, qui me traquasse depuis hiers.
comment qu'on fait pour supprimer le control d'un UserControl ayant le focus par une touche, ou autre?

déja merci de votre aide...

ebaudoux@club.fr
http://velerweb-2.fr.nf
http://velerweb-2.fr.nfhttp://tempuri.org/tempuri.html

22 réponses

Messages postés
66
Date d'inscription
samedi 24 février 2007
Statut
Membre
Dernière intervention
7 octobre 2007

Salut, je vois pas bien se que tu veux dire par "supprimer le control d'un UserControl ", mais si tu veux enlever un controle de ton formulaire tu peux faire comme ca :

Private Sub Form1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
        Dim Ctrl As Control

        If e.KeyChar = Chr(Keys.Space) Then
            For Each Ctrl In Me.Controls
                If Ctrl.Focused = True Then
                    Me.Controls.Remove(Ctrl)
                    Exit For
                End If
            Next
        End If
    End Sub

A plus.
Messages postés
66
Date d'inscription
samedi 24 février 2007
Statut
Membre
Dernière intervention
7 octobre 2007

Si tu met Me.KeyPreview = true dans l'événement KeyPress de ton formulaire ca risque pas de marché !!!
Met la propriété à true en mode design.
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
5
Dans ce cas déplacer le code ne suffit pas je pense. Me.controls désigne les contrôles qui sont sur ta form et non sur le user control.
Sinon une autre solution sans mettre de form et uniquement le user control, c'est de mettre le code directement dans l'évènement Keypress de chaque bouton..
Messages postés
723
Date d'inscription
dimanche 26 novembre 2006
Statut
Membre
Dernière intervention
23 janvier 2013
2
Salut, j'ai essayer ton code tel quel et sous différent angle, ça fonctionne pas, l'application ne fou rien

ebaudoux@club.fr
http://velerweb-2.fr.nf
http://velerweb-2.fr.nfhttp://tempuri.org/tempuri.html
Messages postés
66
Date d'inscription
samedi 24 février 2007
Statut
Membre
Dernière intervention
7 octobre 2007

Salut, ce code dois supprimer les controles qui ont le focus, les uns après les autres, lorsque tu appuis sur la barre d'espace. Il faut que la propriété 'KeyPreview' du formulaire sois à true. Est ce que tu a éssayé de debuger le code ? Est ce que l'application vas dans la procédure lorsque tu appuis sur une touche ?

A plus.
Messages postés
723
Date d'inscription
dimanche 26 novembre 2006
Statut
Membre
Dernière intervention
23 janvier 2013
2
OK, j'ai mit le keyPreview sur true, j'ai débuger, l'application passe bien par la procedure, et il ne se passe toujours rien.

ebaudoux@club.fr
http://velerweb-2.fr.nf
http://velerweb-2.fr.nfhttp://tempuri.org/tempuri.html
Messages postés
66
Date d'inscription
samedi 24 février 2007
Statut
Membre
Dernière intervention
7 octobre 2007

Salut, il y a combien de controle sur ton formulaire ? Est ce qu'il y en a un qui à le focus lorsque tu appuis sur la barre d'espace ? De quel type est le controle qui a le focus ?
Messages postés
723
Date d'inscription
dimanche 26 novembre 2006
Statut
Membre
Dernière intervention
23 janvier 2013
2
pour le moment, il y en a 1, mais il peut y en avoir une dizaine d'un coup, parce que c'est l'utilisateur qui les créer. et, ça peut être tous type de control (sauf les print, savefiledialog...ect). Et, oui, je m'assure à chaque fois qu'il ai le focus

ebaudoux@club.fr
http://velerweb-2.fr.nf
http://velerweb-2.fr.nfhttp://tempuri.org/tempuri.html
Messages postés
66
Date d'inscription
samedi 24 février 2007
Statut
Membre
Dernière intervention
7 octobre 2007

Et si tu met un point d'arret sur la ligne For Each, l'appli s'arrete sur cette ligne ?
Messages postés
723
Date d'inscription
dimanche 26 novembre 2006
Statut
Membre
Dernière intervention
23 janvier 2013
2
Messages postés
66
Date d'inscription
samedi 24 février 2007
Statut
Membre
Dernière intervention
7 octobre 2007

Ok, lorsque l'appli s'arrete sur ton point d'arret, met dans la fenetre espion :         Me.Controls.Item(0).Focused
et fait varier le chiffre 0 pour parcourir tous tes controle, il y en a t il un qui sois à true ?
Messages postés
723
Date d'inscription
dimanche 26 novembre 2006
Statut
Membre
Dernière intervention
23 janvier 2013
2
oula, atend, rectification, l'application s'arrête pas sur le point d'arret!

ebaudoux@club.fr
http://velerweb-2.fr.nf
http://velerweb-2.fr.nfhttp://tempuri.org/tempuri.html
Messages postés
66
Date d'inscription
samedi 24 février 2007
Statut
Membre
Dernière intervention
7 octobre 2007

Pour que le code s'arrete il faut que tu appuis sur la barre d'espace.
Messages postés
723
Date d'inscription
dimanche 26 novembre 2006
Statut
Membre
Dernière intervention
23 janvier 2013
2
Bizarre, hiers, ça marchait, y a 2 seconde, sa marchait pas, et ça fonctionne toujours pas.

ebaudoux@club.fr
http://velerweb-2.fr.nf
http://velerweb-2.fr.nf/Veler%20Software/
Messages postés
66
Date d'inscription
samedi 24 février 2007
Statut
Membre
Dernière intervention
7 octobre 2007

La propriété KeyPreview de ton formaulaire es bien à True ?
Messages postés
723
Date d'inscription
dimanche 26 novembre 2006
Statut
Membre
Dernière intervention
23 janvier 2013
2
oui, bon au cas où, vla le code:

    Private Sub Concept11_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Concept11.KeyPress
        Me.KeyPreview = True
        If e.KeyChar = Chr(Keys.Z) Then
            For Each control In Me.Controls
                If control.Focused = True Then
                    Me.Controls.Remove(control)
                    Exit For
                End If
            Next
        End If
    End Sub

Concept11 est un control utilisateur
vla

ebaudoux@club.fr
http://velerweb-2.fr.nf
http://velerweb-2.fr.nfhttp://tempuri.org/tempuri.html
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
5
Salut,

J'ai testé ce bout de code il fonctionne correctement chez moi à condition de mettre Keypreview à true dans les propriétés de ta form.
Dans la boucle For each avant de supprimer essaye de mettre
MessageBox.Show(Ctrl.Name.ToString) pour vérifier quel contrôle a le focus.
Messages postés
723
Date d'inscription
dimanche 26 novembre 2006
Statut
Membre
Dernière intervention
23 janvier 2013
2
ouinnnn, toujours rien, de plus, le msgbox que j'ai rajouté comme me l'a dit lolokun n'apparait pas à l'écran, je croit que la condition ne doit pas être bien paramètré un truc dans ce genre

ebaudoux@club.fr
http://velerweb-2.fr.nf
http://velerweb-2.fr.nfhttp://tempuri.org/tempuri.html
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
5
Re,

J'avais testé avec une form normale, apparemment la propriété Keypreview n'existe pas pour un user control.
Messages postés
723
Date d'inscription
dimanche 26 novembre 2006
Statut
Membre
Dernière intervention
23 janvier 2013
2
oui, j'ai déplacé le code dans l'évenement de form, et l'ai modifier de façon à agir (supprimer le control) dans le usercontrol, mais sans résultat positif...

ebaudoux@club.fr
http://velerweb-2.fr.nf
http://velerweb-2.fr.nfhttp://tempuri.org/tempuri.html