none
Déclarer un nouveau formulaire RRS feed

  • Question

  • Bonjour, j'ai crée un programme qui contient entre autre une visionneuse d'image. J'ai des images que j'ai intégrée aux ressources de mon programme. J'ai donc crée un formulaire "pictureLibraryDialog" qui permet de choisir des images parmi celles-ci.

    Quand j’appelle la fonction "fromLibrary(imagesID As String)", je voudrais que le formulaire "pictureLibraryDialog" se montre afin que l'on puisse choisir une des images (les images sont affichés dans la méthode "showAndDialog"). Je peux choisir si je montre les images de fleurs ou de paysages en fonction de la valeur que je met en paramètre.

    Quand j'affiche ce formulaire une fois, tout fonctionne. Seulement, une fois que le formulaire est ouvert, je voudrais faire en sorte que l'utilisateur puisse changer les images en cliquant dessus. Je n'ai aucun mal à importer des images depuis l'ordinateur, mais je voudrais aussi que l'on puisse en importer parmi les images de fleurs et de paysages depuis les ressources de mon programme. Et à ce moment une exception qui me dit que le dialogue du formulaire ne peut s'afficher qu'une fois tant que le formulaire est ouvert est levée. J'ai donc essayé de déclarer autant de formulaire qu'il y a de boites de dialogue ouverte avec le mot clé "New", mais je ne sais pas si c'est comme cela que l'on doit faire car l'exception reste la même....

    Pouvez-vous m'aider ??? Merci d'avance !

    La fonction suivante appartient à "dataMethods", une classe qui permet de gérer des valeurs telles que les images.

    Le paramètre "imageID" permet de savoir s'il s'agit d'images de fleurs (parameter.images.flowers.ID = 1) ou de paysages (parameter.images.landscapes.ID = 2)

    Shared Function fromLibrary(imagesID As Integer) Try Dim imageDialog As New picturesLibraryDialog If imagesID = parameter.images.flowers.ID Then imageDialog.showAndDialog(imageDialog.states.chooseFlowersImagesID) ElseIf imagesID = parameter.images.landscapes.ID Then imageDialog.showAndDialog(imageDialog.states.chooseLandscapesImagesID) End If If imageDialog.dialogResults.result = imageDialog.dialogResults.OKResult Then Return imageDialog.images.selected Else Return Nothing End If Catch ex As Exception parameter.errorLibrary.showException("Erreur lors de la saisie d'une image dans la librairie", ex) Return Nothing End Try

    End Function

    La méthode suivante appartient à la classe "picturesLibraryDialog".

    Le paramètre "state" permet de savoir s'il s'agit d'images de fleurs (states.chooseFlowersImagesID = 1) ou de paysages (states.chooseLandscapesImagesID = 2)

     Shared Sub showAndDialog(state As Integer)
    
            Try
    
                states.state = state
                dialogResults.result = dialogResults.noResult
    
                If picturesLibraryDialog.ShowDialog = DialogResult.OK Then
    
                    dialogResults.result = dialogResults.OKResult
    
                Else
    
                    dialogResults.result = dialogResults.noResult
    
                End If
    
            Catch ex As Exception
    
                parameter.errorLibrary.showException("Une erreur s'est produite lors du dialogue de la librairie d'images", ex)
    
            End Try
    
    End Sub






    lundi 15 avril 2019 13:25

Réponses

  • Bonjour,

    Essayez avec la méthode Show ou lieu de ShowDialog.


    Cordialement,
    Nina

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    mardi 16 avril 2019 13:17
    Modérateur
  • Pardon de répondre si tardivement..

    Finalement, j'ai réussi à résoudre le problème en modifiant un peu partout dans le programme... j'ai toujours utilisé la fonction ShowDialog() à la place de Show(), mais je suis incapable de vous dire les modifications que j'ai faites.

    Merci pour ta participation Nina.


    Nathan

    mercredi 26 juin 2019 08:58

Toutes les réponses

  • Bonjour,

    Essayez avec la méthode Show ou lieu de ShowDialog.


    Cordialement,
    Nina

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    mardi 16 avril 2019 13:17
    Modérateur
  • Pardon de répondre si tardivement..

    Finalement, j'ai réussi à résoudre le problème en modifiant un peu partout dans le programme... j'ai toujours utilisé la fonction ShowDialog() à la place de Show(), mais je suis incapable de vous dire les modifications que j'ai faites.

    Merci pour ta participation Nina.


    Nathan

    mercredi 26 juin 2019 08:58