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 :

vb.net-désactiver un control dans un panel


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2020
    Messages : 8
    Par défaut vb.net-désactiver un control dans un panel
    Bonjour à tous,

    J'ai un panel avec des contrôles(labels avec textes, couleurs….) qui sont créés dynamiquement à l'intérieur de celui ci.

    Mon panel déclenche des évènements (mouse down, up, move…)

    Le problème est que lorsque je créée les labels, les évènements de mon panel ne se déclenchent pas, car ma souris se trouve sur les labels.

    Est il possible que mon programme prenne en compte les évènements du panel(qui se trouve en arrière plan des labels), même lorsque ma souris se trouve sur un label(désactiver les labels par exemple)?

    Merci d'avance

    Jimmy

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Les événements qui te contrarient ont une procédure événementielle de réponse écrite, sinon ils ne "réagiraient" pas.
    Si tu ne peux supprimer ces procédures, ne peux-tu pas leur désactiver la prise en compte des événements des contrôles que tu veux "discrets" ?

    Par exemple, pour le clic de TextBox1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RemoveHandler   TextBox1.Click, AddressOF TextBox1_Click
    L'évément peut être réactivé quand cela te convient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AddHandler   TextBox1.Click, AddressOF TextBox1_Click
    J'espère que ceci t'aidera ...

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2020
    Messages : 8
    Par défaut
    Bonjour.
    Merci pour ta réponse.

    Effectivement, je pense que ca va répondre partiellement à ma question.

    Le problème restant, est que si ma souris se trouve sur un label, les évènements du panel en arrière plan ne se déclencheront pas(enfin je pense)
    J'aimerais que les évènements se déclenchent comme si les labels n'existaient pas.

    Merci

  4. #4
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    J'ai pas testé, mais peut-être ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AddHandler Panel1.Click, AddressOF Label1_Click
    Cela devrait permettre au click du Label de répondre avec la procédure du Panel_Click.

    ...

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2020
    Messages : 8
    Par défaut
    J'y avais bien pensé, mais lors du click par exemple, la fonction récupère les paramètres(sender et e) du label et non du panel

  6. #6
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Simplement effacer toute la procédure Label.Click ne convient pas ?

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2020
    Messages : 8
    Par défaut
    Je viens de trouver et c'est vraiment tout bête.

    Si on met la propriété enabled sur false, il reste apparent, mais les événements sont bien pris en compte sur le panel qui est en arrière plan

    Merci pour ton aide

  8. #8
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Merci pour le feedback.

    @+

  9. #9
    Membre émérite
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2006
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2006
    Messages : 731
    Par défaut
    Bonjour,

    Il y a une autre possibilité, c'est d'associer le handler à tous les control. Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Control_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles nomDuControlPanel.MouseMove, nomDuControlLabel.MouseMove
    Au besoin, si tu ajoutes ou retire des control à la volée, tu fais un RemoveHandler, puis Addhandler

  10. #10
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Pendant l'échange précédent, j'étais entrain de faire un programme de test sur la distinction des Click Label et Panel.
    Je te l'envoie à toutes fins utiles ..., pour le cas où l'esthétique d'un composant désactivé ne serait pas idéale.

    Voici : PanelClick.zip


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

Discussions similaires

  1. [c# ou VB.net] afficher une Form dans un Panel
    Par octal dans le forum Windows Forms
    Réponses: 4
    Dernier message: 09/03/2013, 16h43
  2. [C# 2.0][Ajouter des Controls dans un panel
    Par the big ben 5 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 11/11/2006, 09h07
  3. [VB.NET]Afficher plusieurs UserControls dans un Panel
    Par Golzinne dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/02/2006, 21h29
  4. Réponses: 12
    Dernier message: 08/02/2006, 17h28

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