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 :

Bouton Annuler dans un InputBox


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 68
    Points
    68
    Par défaut Bouton Annuler dans un InputBox
    Bonjour,
    j'ai une Inputbox qui demande une valeur:
    decale = InputBox("nombre de minutes", "nombre", 0)
    pas de souci en fonctionnement "normal"
    je souhaite traiter le cas où on appuie sur annuler sans entrer de valeur et
    sortir de la procédure
    quelle valeur est renvoyée dans ce cas ?
    sinon comment supprimer carrément le bouton annuler et ne garder que le bouton OK
    Merci de vos réponses

  2. #2
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Si rien n'est rentré, que ce soit "Ok" ou "Annuler", il renvoi une chaîne vide.
    Tu peux tester que le retour soit ou non une chaîne vide, mais cela ne voudra pas forcement dire qu'il a cliqué sur "annuler".

    A ma connaissance, on ne peut pas enlever le bouton "annuler", après j'aimerais qu'on me contredise.

    Si tu veux avoir la main, utilise plutôt une DialogBox qui contient une TextBox.
    Tu pourras tester les retours.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            Dim DlgResult As DialogResult
            Dim taDialog As dialogPerso
     
            DlgResult = taDialog.ShowDialog()
     
            If DlgResult = DialogResult.OK Then
     
            ElseIf DlgResult = DialogResult.Cancel Then
     
            End If

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Voici 2 exemples de boite de dialogue personnalisée sur le principe de l'InputBox, tu pourras adapter à ta guise.
    http://www.dreamincode.net/forums/to...stom-inputbox/
    http://vbnetworld.blogspot.fr/2011/0...-inputbox.html

    A+, Hervé.

  4. #4
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 68
    Points
    68
    Par défaut
    Merci,
    En fait je veux juste un truc simple,parce que là quand je click sur annuler il me renvoit une erreur,donc je voulais juste corriger ça et donc si c'est pas possible d'enlever ce bouton,juste fermer l'application quand on clique sur annuler.

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 68
    Points
    68
    Par défaut
    je pense que j'ai un problème de conversion de string en double d'après le message d'erreur et voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    dim port as integer
     Port = InputBox("Numéro du port Com:  ('0':non connecté)", "Port Com ", 0)
            If Port <> 0 Then
              'code d'ouverture du port
            end if

  6. #6
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Inputbox renvoi un string. Tu dois récupérer ton nombre et le ctyper en integer.

    Edit: J'ai rajouté le test de l'integer ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
              Dim port As Integer
            Dim retour As String
     
            retour = InputBox("Numéro du port Com:  ('0':non connecté)", "Port Com ", 0)
     
            If retour <> "" And Integer.TryParse(retour, 0) Then
                port = CType(retour, Integer)
            End If
     
            If port <> 0 Then
                'code d'ouverture du port
            End If

  7. #7
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 68
    Points
    68
    Par défaut
    Merci _Ez3kiel,
    Effectivement j'vais pas penser à tester s'il s'agit bien d'un integer,donc j'ai pris ton code et je l'ai adapté un peu pour résoudre ce problème,voici le code que j'ai mis:
    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
     
         Dim retour As String
     
    etq0:   retour = InputBox("Numéro du port Com: ('0':non connecté)", "Port Com ", 1)
     
            If retour <> "" Then
                If Not Char.IsDigit(retour) And Not Char.IsControl(retour) Then
                    MsgBox("Entrez un nombre!")
                    GoTo etq0
                End If
     
                Port = CType(retour, Integer)
            Else
     
                exit sub       
     End If
    mais je n'arrive pas à quitter le form en cours et revenir sur la page de démarrage quand on clique sur Annuler,j'ai essayé des truc comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    me.close()
    loginform.show()
    'ou bien
    me.hide()
    mais ça ferme pas le form en cours et ça revient pas sur la page de démarrage
    merci

  8. #8
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Arf, j'ai été un peu long, mais j'avais édité pour te rajouter le test d'integer.

    Et Évite les GoTo autant que possible ...

    Ensuite, je ne comprend pas ta question, par "le form en cours", tu parles de ton InputBox (qui n'est pas un Form), ou d'un formulaire qui fait surgir ton InputBox, et qui est encore différent de ton formulaire principale ... ?

  9. #9
    Membre régulier
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2006
    Messages : 129
    Points : 106
    Points
    106
    Par défaut
    Bonjour,

    je m'incruste un peu, le sujet m'interesse.

    On peut utiliser une boucle sur un input ? c'est propre ?


    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
    Dim retour As String = ""
     
    msg = "Numéro du port Com: ('0':non connecté)"
    While retour = ""
    retour = InputBox(msg, "Port Com ", 1)
     
    'Si la chaine n'est pas convertible en valeur, on reboucle
    If Not IsNumeric(retour) then
    retour = ""
    msg = "Numéro du port Com: ('0':non connecté)" & chr(10) & "Nombre uniquement !"
    End If
     
    Wend
     
    Dim Port as Integer = Val(retour)

  10. #10
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,
    Citation Envoyé par _Ez3kiel Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            If retour <> "" And Integer.TryParse(retour, 0) Then
                port = CType(retour, Integer)
            End If
    Attention tryparse peut être mieux utilisé

    MSDN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        'Déclaration
        Public Shared Function TryParse(ByVal s As String, _
                                        <OutAttribute()> ByRef result As Integer _
                                        ) As Boolean
    donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            If Integer.TryParse(retour, Port) Then
    Citation Envoyé par prologic Voir le message
    On peut utiliser une boucle sur un input ? c'est propre ?
    Bof, si après une (ou plusieurs erreurs) l'utilisateur ne veux plus se connecter, il ne peut pas interrompre ce qu'il fait.

    Citation Envoyé par mawkli Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not Char.IsDigit(retour) And Not Char.IsControl(retour) Then
    Il est préférable d'utiliser le Integer.TryParse qui renverras directement un entier.
    Il vaut mieux placer le code sur un bouton, ce qui laissera le choix à l'utilisateur de quitter ce qu'il fait en cas d'erreur.
    Et de toutes façons tant qu'il ne saisiera pas un port correct, il ne pourra pas continuer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        Private Sub BtnInput_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnInput.Click
            Dim port As Integer = 0
            If Integer.TryParse(InputBox("Numéro du port Com ('0':non connecté) :" & vbCrLf & "Veuillez saisir un nombre", "Port Com ", 1), port) Then
                If port > 0 Then ' ou mieux faire un if sur la plage de port utilisés
                    ' connection
                    '...
                Else
                    MessageBox.Show("Erreur : N° de port incorrect. Connexion impossible. {" & port & "}")
                End If
            Else
                MessageBox.Show("Annulé ou port n'est pas un nombre entier.")
            End If
        End Sub
    Sinon s'il n'y a pas un nombre de ports importants le plus simple reste de proposer une liste des ports. (quiprovient d'une BDD ou d'un fichier de config)

    A+, Hervé.

  11. #11
    Membre régulier
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2006
    Messages : 129
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par rv26t Voir le message
    Bof, si après une (ou plusieurs erreurs) l'utilisateur ne veux plus se connecter, il ne peut pas interrompre ce qu'il fait.
    Ouais... donc mauvaise idée... merci

  12. #12
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Citation Envoyé par rv26t Voir le message
    Bonjour,

    Attention tryparse peut être mieux utilisé

    MSDN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        'Déclaration
        Public Shared Function TryParse(ByVal s As String, _
                                        <OutAttribute()> ByRef result As Integer _
                                        ) As Boolean
    donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            If Integer.TryParse(retour, Port) Then
    Shame on me ...

    Merci pour cette information.

  13. #13
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 68
    Points
    68
    Par défaut
    Merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. annulation dans une inputbox
    Par sharpeye dans le forum Access
    Réponses: 20
    Dernier message: 29/01/2009, 20h31
  2. bouton annuler dans formulaire
    Par fuzcrew dans le forum IHM
    Réponses: 1
    Dernier message: 15/05/2008, 23h24
  3. bouton annuler dans un GUI
    Par androz dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 17/03/2008, 00h22
  4. Bouton annuler dans un formulaire
    Par Niniz dans le forum JSF
    Réponses: 4
    Dernier message: 27/07/2007, 11h26
  5. Bouton Annulation dans un formulaire
    Par Vincent_59 dans le forum IHM
    Réponses: 2
    Dernier message: 19/06/2007, 09h30

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