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 :

FolderBrowserDialog sur un projet MDI


Sujet :

VB.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Par défaut FolderBrowserDialog sur un projet MDI
    Bonjour,

    Je suis sur un FolderBrowserDialog qui me pose un sérieux problème.

    J'ai créé un projet MDI et lors de l'exécution de la sub suivante :


    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
    Public Sub BrowseBprDir()
     
     
    Dim BrwseBpr As New FolderBrowserDialog
     
    BrwseBpr.RootFolder = Environment.SpecialFolder.Desktop
    BrwseBpr.Description = "Sélectionnez un répertoire"
    BrwseBpr.ShowDialog()'<----------ERREUR ICI
    If BrwseBpr.SelectedPath = String.Empty Then
    MsgBox("Pas de sélection")
    Else
     
    MsgBox(BrwseBpr.SelectedPath)
     
    End If
    BrwseBpr.Dispose()
    End Sub

    j'ai ce message d'erreur :

    Current thread must be set to single thread apartment (STA) mode before OLE calls can be made. Ensure that your Main function has STAThreadAttribute marked on it. This exception is only raised if a debugger is attached to the process.

    J'ai fouillé un peu partout et j'ai trouvé une réponse sur le net conseillant de de faire un (ou une) Invoke.

    Je ne sais pas comment m'en dépatouiller. Je ne comprend pas.
    J'ai essayé de voir avec STAThreadAttribute mais mis a part un mal de crâne... rien.

    Est-ce que quelqu'un peut me venir en aide ???

    Merci d'avance.

    @+ Thierry
    Images attachées Images attachées  

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Est-ce que tu ouvres ce dialogue à partir du thread principal, ou bien tu as créé un nouveau thread ?

    Normalement le thread principal est déjà en STA, par contre si tu crées un nouveau thread il faut explicitement appeler SetApartmentState avant de le lancer

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Par défaut
    Bonjour, et merci pour la rapidité de votre réponse.

    Je ne comprends pas très bien la notion de thread. De quoi s'agit-il exactement ?

    En fait, l'appel de la méthode BrowseBprDir() se fait à partir d'une Child, ParamFrm, et donc d'une classe différente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Class ParamFrm
    Private Sub BprDirCmnd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BprDirCmnd.Click
     
    OSBP_MainFrm.BrowseBprDir()
     
    End Sub
    Par contre, l'erreur n'apparait qu'en mode débuggage de VB.Net.
    Une fois généré, lors de l'exécution de mon application ma FolderBrowserDialog apparait convenablement, sans générer d'erreur...

    Je ne comprends pas.

    Merci d'avance,

    Thierry.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par zedude33 Voir le message
    Je ne comprends pas très bien la notion de thread. De quoi s'agit-il exactement ?
    Dans ce cas il est peu probable que tu en aies utilisé un sans le savoir
    http://fr.wikipedia.org/wiki/Thread_%28informatique%29

    Citation Envoyé par zedude33 Voir le message
    Par contre, l'erreur n'apparait qu'en mode débuggage de VB.Net.
    Une fois généré, lors de l'exécution de mon application ma FolderBrowserDialog apparait convenablement, sans générer d'erreur...

    Je ne comprends pas.
    Ben là moi non plus... vu le message d'erreur, je ne vois pas pourquoi ça fonctionnerait sans debugger

Discussions similaires

  1. Recherche d'informations sur le projet kannel ?
    Par spynux dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 07/12/2011, 20h53
  2. Combien d'heures passez vous sur vos projets
    Par Issam dans le forum Débats sur le développement - Le Best Of
    Réponses: 76
    Dernier message: 09/12/2007, 19h53
  3. Question sur les projets MDI
    Par MoscoBlade dans le forum MFC
    Réponses: 4
    Dernier message: 10/12/2006, 16h23
  4. question sur un projeté orthogonal:)
    Par floflo69 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/04/2005, 17h06

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