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 :

probleme avec button.enabled [Débutant]


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance reprographie
    Inscrit en
    Septembre 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance reprographie

    Informations forums :
    Inscription : Septembre 2012
    Messages : 21
    Points : 20
    Points
    20
    Par défaut probleme avec button.enabled
    bonsoir a toutes et a tous,

    je débute dans la programmation vb.net et j'ai un petit probleme ! Apres plusieurs recherches sur le net et dans les differents forums, je viens vous demander un peu d'aide.
    Dans mon programme, j'ai deux boutons qui font a peu pret la meme chose (c'est a dire que sur 10 lignes, 8 sont en communs sur les deux boutons). Donc j'ai decide de mettre ces 8 lignes de code communes dans une fonction que j'appelle lorsque je clique sur l'un des deux boutons. Malheureusement, vb me sort une erreur quand je lance l'application.
    voila le bout de code initial :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Private Sub Button_Click(sender As System.Object, e As System.EventArgs) Handles button.Click
            Button1.BackColor = Color.Green
            Button2.BackColor = Color.Transparent
            Me.button1.Enabled = False
            Me.button2.Enabled = False
            Me.buttonA.Enabled = False
            Me.ButtonB = False
            Me.checklistBox.Enabled = False
            Me.ButtonA = Color.Transparent
            Me.ButtonB = Color.Transparent
            ProgressBar.MarqueeAnimationSpeed = 50
        End Sub
     
    et maintenant le bout de code final :
    Private Sub Button_Click(sender As System.Object, e As System.EventArgs) Handles button.Click
            Dim myThread1 As Thread = New Thread(AddressOf action1)
            Button1.BackColor = Color.Green
            Button2.BackColor = Color.Transparent
            myThread1.Start()
        End Sub
        Private action1()
            Me.button1.Enabled = False
            Me.button2.Enabled = False
            Me.buttonA.Enabled = False
            Me.ButtonB = False
            Me.checklistBox.Enabled = False
     
            Me.ButtonA = Color.Transparent
            Me.ButtonB = Color.Transparent
            ProgressBar.MarqueeAnimationSpeed = 50
       End Sub
    Ce qui change avec l'autre button, c'est la couleur de fond des button, mais ca ne pose pas de probleme.
    Dans ce que j'ai fait en second jet, les Me.Button.enabled = false , ne passe pas et ressort en erreur.
    Message d'erreur "Opération inter-threads non valide : le contrôle 'button1' a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé." et "l'exception InvalidOperationException n'a pas été gérée".

    Donc voila, je vous demande de l'aide pour m'aider a resoudre ce probleme de button cachés. Si vous avez des éléments de réponse, je prends !
    merci d'avance
    Bonne soirée
    cordialement
    Lunick90

  2. #2
    Membre chevronné
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Points : 2 209
    Points
    2 209
    Par défaut
    Bonsoir,

    Tu as cette erreur car tu lances un autre thread or seul le thread gérant l'interface peut modifier les contrôles directement (pour faire simple).

    Ici n'utilise tout simplement pas d'autre thread, exemple (en utilisant la balise code )
    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
    16
    17
    Private Sub Button_Click(sender As Object, e As EventArgs) Handles button.Click
        Action1()
        Button1.BackColor = Color.Green
        Button2.BackColor = Color.Transparent
    End Sub
     
    Private Sub Action1()
        Button1.Enabled = False
        Button2.Enabled = False
        ButtonA.Enabled = False
        ButtonB = False 'Manque .Enabled ici ?
        ChecklistBox.Enabled = False
     
        ButtonA = Color.Transparent
        ButtonB = Color.Transparent
        ProgressBar.MarqueeAnimationSpeed = 50
    End Sub
    Note (nommer ces contrôles de manière plus explicite serait une bonne chose

    Cordialement !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance reprographie
    Inscrit en
    Septembre 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance reprographie

    Informations forums :
    Inscription : Septembre 2012
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    bonsoir,
    merci pour votre reponse rapide.
    Si j'ai bien compris, je ne peux pas faire comme je voulais faire en seconde intention et donc revenir a ce que j'ai fait avant ? ou y a t il une solution pour y remedier ?

    merci pour vos réponses

    cordialement

    Lunick90

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 175
    Points : 25 116
    Points
    25 116
    Par défaut
    un thread ne sert que quand on a un long traitement à faire, et pas ou peu de manipulation de controles

    pour mettre en commun du code qui servent à divers endroits, il suffit juste de faire une sub avec le code et en général une variable pour le paramètre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    sub button1_click (sender as object, e as system.Eventargs) handles button1.click
      action(button1)
    end sub
     
    sub button2_click (sender as object, e as system.Eventargs) handles button2.click
      action(button2)
    end sub
     
    private sub action(b as button)
      b.enabled = false
    end sub

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance reprographie
    Inscrit en
    Septembre 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance reprographie

    Informations forums :
    Inscription : Septembre 2012
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    Bonjour,
    merci. je vais esayer ca tout a l'heure, et je vou tiens au courant !

    cordialement

    Lunick 90

  6. #6
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance reprographie
    Inscrit en
    Septembre 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance reprographie

    Informations forums :
    Inscription : Septembre 2012
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    bonjour,
    je reponds un peu tard a votre message.
    j'ai essaye ce que vous avez popose et ca a marche.
    merci de votre aide

    Cordialement

    Lunick90

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

Discussions similaires

  1. probleme avec bouton.enable
    Par rob1son76 dans le forum IHM
    Réponses: 5
    Dernier message: 08/03/2010, 15h52
  2. Probleme avec button.Location
    Par samiblh dans le forum ASP.NET
    Réponses: 1
    Dernier message: 21/04/2009, 22h51
  3. probleme avec button
    Par lecureuil30 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 29/01/2008, 19h57
  4. Probleme avec des Radio Button
    Par beb30 dans le forum MFC
    Réponses: 7
    Dernier message: 15/05/2006, 23h46
  5. Réponses: 5
    Dernier message: 08/02/2005, 20h50

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