Boite de dialogue personnalisée [Résolu]

85857 16 Messages postés vendredi 21 mai 2010Date d'inscription 28 juillet 2010 Dernière intervention - 27 juil. 2010 à 17:19 - Dernière réponse : cs_christoni 140 Messages postés mardi 25 novembre 2003Date d'inscription 1 novembre 2010 Dernière intervention
- 28 juil. 2010 à 15:52
Bonjour
Alors voila j'ai créé une boite de dialogue personnalisée. Je l'ouvre depuis un formulaire. Et selon la réponse choisie je rempli un textbox de mon formulaire.

Voici mon code :

Dim formRechercheBeneficiaire As RechercheBeneficiaire = New RechercheBeneficiaire()
If MsgBox(formRechercheBeneficiaire) = MsgBoxResult.Ok Then
TxtRechercheIndividu.Text = getNumPers().ToString()
End If


Seulement j'ai une erreur : L'argument 'Prompt' ne peut pas être converti en type 'String'.

Quelqu'un peut-il m'aider ?
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
cs_christoni 140 Messages postés mardi 25 novembre 2003Date d'inscription 1 novembre 2010 Dernière intervention - 28 juil. 2010 à 14:23
3
Merci
Bonjour,
j'avais fait un truc comme cela, une fois, que je vais essayer de l'appliquer à votre cas.

Dans RechercheBeneficiaire je créerais une propriété du genre :
    ' Propriété pour exporter la valeur du DGV "DataGridView1".
    Property Exporter() As String
        Get
            Return CStr(DataGridView1.CurrentCell.Value)
        End Get
        Set(ByVal Value As String)
            DataGridView1.CurrentCell.Value = Value
        End Set
    End Property


Je traiterais les boutons de ce formulaire comme suit :
        ' DEFINIT le résultat renvoyé par les contrôles du formulaire.
    Private Sub btnOui_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnOui.Click
        Me.DialogResult = DialogResult.Yes
        'Me.Validate()
    End Sub

    Private Sub btnNon_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnNon.Click
        Me.DialogResult = DialogResult.Cancel
        'Me.Validate()
    End Sub


Enfin dans le formulaire principal, on initialise le messagebox d'entrée, puis dans le load,
on abonne les contrôles de "formRechercheBeneficiaire" à la procédure "RechercheBeneficiaire_Validated" qui traitera la réponse choisie.
Dans le genre suivant :
Public Class Form1 ' formulaire principal

    '*** Initialisation de "RechercheBeneficiaire" au lancement.
    Dim formRechercheBeneficiaire As RechercheBeneficiaire = New RechercheBeneficiaire()

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        '*** abonnement des contrôles de "formRechercheBeneficiaire" à la procédure ci dessous
        AddHandler formRechercheBeneficiaire.btnOui.Click, AddressOf RechercheBeneficiaire_Validated
        AddHandler formRechercheBeneficiaire.btnNon.Click, AddressOf RechercheBeneficiaire_Validated
    End Sub

    Private Sub RechercheBeneficiaire_Validated(ByVal sender As Object, ByVal e As System.EventArgs)
        ' GESTIONNAIRE de l'événement "Validated", selon le contrôle cliqué dans
        '  le formulaire "Message"

        Select Case formRechercheBeneficiaire.DialogResult
            Case DialogResult.Yes
               'Là on importe le texte de la cellule sélectionnée du DGV dans le textbox voulu.
                TxtRechercheIndividu.Text = formRechercheBeneficiaire.Exporter
                formRechercheBeneficiaire.Close()
            Case DialogResult.Cancel
                formRechercheBeneficiaire.Close()
                '*** Case etc...
        End Select
    End Sub

    '*** le button qui appelle "formRechercheBeneficiaire"
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        formRechercheBeneficiaire.Show()
    End Sub

End Class

Merci cs_christoni 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de cs_christoni
scromania 453 Messages postés dimanche 20 août 2006Date d'inscription 11 janvier 2013 Dernière intervention - 27 juil. 2010 à 17:34
0
Merci
tu peux détaillé je ne comprend pas:
RechercheBeneficiaire qu'est ce que sa fait ,il y a quoi dedant

que cherche tu as faire
Commenter la réponse de scromania
cs_christoni 140 Messages postés mardi 25 novembre 2003Date d'inscription 1 novembre 2010 Dernière intervention - 27 juil. 2010 à 22:15
0
Merci
Bonsoir,
c'est vrai que cela manque de détail.
Quel type de boite de dialogue ? Input, message, open file etc... ?
Mais pour une première approche le code devrait ressembler à cela :
        Dim formRechercheBeneficiaire As New RechercheBeneficiaire
        Dim Result As RechercheBeneficiaire.DialogResultat
        Result = formRechercheBeneficiaire.Show("paramètre 1", "paramètre 2", _
                 "Enfin tous les paramètres de la  boite personnalisée")
        If Result = Windows.Forms.DialogResult.Yes Then
            ' une chose
        Else
            ' une autre chose
        End If

Exemple pour une MessageBox en vb 2008.
Commenter la réponse de cs_christoni
scromania 453 Messages postés dimanche 20 août 2006Date d'inscription 11 janvier 2013 Dernière intervention - 28 juil. 2010 à 08:11
0
Merci
tu cherche que si tu clique sue oui ou non il se passe quelque chose.
Je n'est jamais chercher a personaliser la boite de dialog.

    If MessageBox.Show("toto", "ma texte box", MessageBoxButtons.YesNo, MessageBoxIcon.Information) = Windows.Forms.DialogResult.Yes Then

        Else

        End If


Si tu veux afficher par exemple Nom et prenom a la place de "toto"
texbox1.text & textbox2.text

Il se peut que je reponde à coté de la plaque mais bon.
je ne c'est pas si tu auras toujours l'erreur 'Prompt' alors teste
Commenter la réponse de scromania
85857 16 Messages postés vendredi 21 mai 2010Date d'inscription 28 juillet 2010 Dernière intervention - 28 juil. 2010 à 09:57
0
Merci
Excusez moi de ne pas avoir été assez clair.

J'ai un formulaire où dans une textbox on entre des lettres. Lorsqu'on clic sur le bouton à coté on ouvre une boite de dialogue personnalisé qui s'appelle RechercheBeneficiaire qui elle, affiche un DataGridView avec les bénéficiaires dont le nom commence par le texte qui se trouve dans la textbox du formulaire.

Sur l'événement clic du bouton j'ouvre donc RechercheBeneficiaire :
Dim formRechercheBeneficiaire As RechercheBeneficiaire = New RechercheBeneficiaire()
formRechercheBeneficiaire.Show()


Puis une fois que l'utilisateur à cliquer sur le bouton 'ok' de ma boite de dialogue je voudrais récupérer le bénéficiaire sélectionné.

Mais la j'ai un soucis car je ne sais pas comment dire que le programme doit "attendre" la validation de la boite de dialogue pour récupérer mon bénéficiaire.

Suis-je plus clair ?
Commenter la réponse de 85857
scromania 453 Messages postés dimanche 20 août 2006Date d'inscription 11 janvier 2013 Dernière intervention - 28 juil. 2010 à 10:46
0
Merci
c'est très clair maintenant .
Commenter la réponse de scromania
85857 16 Messages postés vendredi 21 mai 2010Date d'inscription 28 juillet 2010 Dernière intervention - 28 juil. 2010 à 15:00
0
Merci
Je ne peux pas mettre juste :

Case DialogResult.Yes
ou
Case DialogResult.Cancel


ça me met l'erreur : Une référence à un membre non partagé requiert une référence d'objet
Commenter la réponse de 85857
cs_christoni 140 Messages postés mardi 25 novembre 2003Date d'inscription 1 novembre 2010 Dernière intervention - 28 juil. 2010 à 15:52
0
Merci
Non, car on attend la réponse de "formRechercheBeneficiaire"
A tester, le traitement par "if"
        If formRechercheBeneficiaire.DialogResult = Windows.Forms.DialogResult.Yes Then
            TxtRechercheIndividu.Text = formRechercheBeneficiaire.Exporter
            formRechercheBeneficiaire.Hide()
        End If

Mais à mon avis cela donnera le même message d'erreur.
Cette boite de message personnalisée est elle bien issue de l'ajout d'un formulaire windows qui lui est public donc accessible de toute l'application.
"formRechercheBeneficiaire" semble private dans votre cas.
Commenter la réponse de cs_christoni

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.