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 :

Utilisation evenement vbnet


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 104
    Par défaut Utilisation evenement vbnet
    Bonjour,

    J'utilise un scanner qui emet un event lors d'un scan de data .
    J'ai une fonction qui est à l'ecoute de cette événement, et si cette événement ce produit, execute une form.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    private sub INIT()
    addhandler scandone, addressof afficherForm
    end sub
     
    Private sub scan ()
    raiseEvent ScanDone
    end sub
     
    Private sub AfficherForm() 
    Dim myform as new form
    myform.showdialog
    end sub
    Le probléme est que je ne peux plus utiliser le scanner lorsque l'evenement est executer.
    Il lance ma nouvelle form, mais tjrs dans le même thread que le scan.

    Comment faire pour contourner ce probléme (hormis utiliser un timer qui executerais ma form une fois l'event déclancher...)

    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 104
    Par défaut
    Voici un tout simple exemple :
    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
     
     
    Public Class Form1
     
        Private Delegate Sub work()
        Private mydelegate As work
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            AddHandler BackgroundWorker1.DoWork, AddressOf StartWorking
            AddHandler BackgroundWorker1.RunWorkerCompleted, AddressOf EndWorking
            BackgroundWorker1.RunWorkerAsync()
            mydelegate = New work(AddressOf ToBeinvokeD)
        End Sub
     
        Public Sub StartWorking()
            Dim i As Integer = 0
            Invoke(mydelegate)
            While i < 1000
                'Mes calculs
            End While
        End Sub
     
        Public Sub EndWorking()
            MessageBox.Show("Fin de mon thread")
        End Sub
     
        Public Sub ToBeinvokeD()
            MessageBox.Show("Invoked")
        End Sub
    End Class
    J'aimerais que lorsque mon thread arrive sur Invoke(mydelegate), il m'affiche "INVOKED".
    Il le fait bien, mais le thread est toujours bloqué alors que je voudrais que mon thread continue son travail...et que ca ne soit pas le thread qui affiche le message INVOKED mais ma form principal...(d'ou l'utilisation de invoke)

    Cette facon de proceded devrait fonctionner non ?

Discussions similaires

  1. utilisation evenement onchange
    Par phico04 dans le forum Langage
    Réponses: 9
    Dernier message: 23/03/2013, 11h07
  2. [AC-2000] Utilisation Evenement clic sur ListView
    Par petitbison dans le forum IHM
    Réponses: 10
    Dernier message: 03/08/2009, 19h54
  3. Utiliser Evenement KeyDown avec un controle ActiveX
    Par parp1 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 31/05/2007, 14h24
  4. [VB.Net] l'utilisation des Evenements sur Objet
    Par vijeo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 06/03/2006, 12h44
  5. Réponses: 11
    Dernier message: 15/02/2006, 14h45

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