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 :

Laissez un Form ouvert généré depuis une BDC ?


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 117
    Par défaut Laissez un Form ouvert généré depuis une BDC ?
    Bonjour, je créé une bibliothèque de class et j'ai besoins de créer et afficher un formulaire depuis la dll.

    Pas de problème pour la générer, mais pour l'ouvrir :

    Ouvre et ferme le formulaire aussitôt.

    Ouvre le formulaire en boucle et donc le code après le showdialog() de l'appli et exécuter une fois que l'utilisateur à fermé la fenêtre.

    Je souhaiterais que dans la dll le formulaire s'affiche et les function qui vont interagir avec ce formulaire dans la bibliothèque s’exécute comme dans une application windows form.

    J'ai tenté un Form1.showdialog() depuis un autre thread (ça fonctionne) mais j'ai des gros soucis d'inter-thread ou de paramètre non valide.

    Si une personne à une solution, merci d'avance.
    En attendant je cherche de mon côté

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    le problème n'est pas là, qu'un form soit dans une dll ou dans un exe ne change rien
    si tu as un démarrage d'exe sur un sub main il faut toi même démarrer l'écoute de la boucle de message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    application.run(telform)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 117
    Par défaut
    Salut, en faite application.run(telform) sa ne change rien au problème le code n'ai plus exécute temps que la fenêtre est ouverte puisque sa lance une boucle.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    si tu as du code autre, il faut que tu le transfère sur un autre thread
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Si tu lances le formulaire depuis un thread secondaire, il ne suffit pas de faire un form.show()?

    Si c'est le cas et comme c'est assez complexe (de mémoire), j'essayerai de te fournir demain un code qui permet de le faire.

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 117
    Par défaut
    Depuis un autre thread sa fonctionne bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Function Initialise(ByVal Largeur As Int32, ByVal Hauteur As Int32, ByVal Titre As String, ByVal Couleur As Color) As Boolean
            Fen = New Form With {.Width = Largeur, .Height = Hauteur, .Text = Titre, .BackColor = Couleur, .FormBorderStyle = FormBorderStyle.FixedSingle, .MaximizeBox = False, .StartPosition = FormStartPosition.CenterScreen}
     
            Jeu = New PictureBox With {.Width = Largeur, .Height = Hauteur, .BackColor = Couleur}
            Fen.Controls.Add(Jeu)
     
            thFen = New Threading.Thread(AddressOf RunFen) : thFen.Start()
     
            Return True
        End Function
    Mon thread :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Private Sub RunFen()
            Fen.ShowDialog()
        End Sub
    Les handles dans la DLL fonctionne très bien aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        ' Ferme le projet en cas de clique sur la croix.
        Private Sub Close(ByVal sender As Object, ByVal e As FormClosingEventArgs) Handles Fen.FormClosing
            Fin()
            Fen.Dispose()
        End Sub
    bon, la le handles est sur le closing donc le projet se "end".

    J'ai essayé de bidouiller le thread pour le fermer sans a avoir à cliquer sur la croix :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Private Sub RunFen()
            While resteOuvert = True
                If mon - Fen - nest - pas - ouvert Then Fen.ShowDialog() Else  : Threading.Thread.Sleep(0)
            End While
     
            Fen.Dispose()
        End Sub
    Pareil, je n'arrive pas a killer mon projet sans forcément utiliser la croix le thread reste bloqué sur ShowDialog.

Discussions similaires

  1. [TCPDF] Ecrire du html généré depuis une vue
    Par m-mas dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 09/07/2015, 17h29
  2. Réponses: 1
    Dernier message: 16/05/2011, 17h11
  3. [Form et popup] target d'un form ouvert dans une popup
    Par Flobel dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 19/01/2007, 21h05
  4. Réponses: 3
    Dernier message: 16/01/2006, 16h02
  5. Comment basculer le focus depuis une autre form ?
    Par altahir007 dans le forum Composants VCL
    Réponses: 9
    Dernier message: 03/09/2003, 15h54

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