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

C# Discussion :

inputbox a double condition


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut inputbox a double condition
    Bonjour à tous,

    J'ai à nouveau un petit problème... je cherche à faire une inputbox a double condition Pour la saisie d'un nom ET d'un prénom...

    J'ai bien un modèle simple:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    public partial class frmInput : Form
        {
            public frmInput(string windowTitle, string question, string defaultText)
            {
                InitializeComponent();
                this.Text = windowTitle;
                this.label1.Text = question;
                this.textBox1.Text = defaultText;
            }
     
            public static DialogResult ShowfrmInput(string windowTitle, string question, ref string defaultText)
            {
                using (frmInput dlg = new frmInput(windowTitle, question, defaultText))
                {
                    dlg.Text = windowTitle;
                    dlg.label1.Text = question;                
                    dlg.textBox1.Text = defaultText;
     
                    DialogResult result = dlg.ShowDialog();
                    if (result == DialogResult.OK)
                        defaultText = dlg.textBox1.Text;
     
                    return result;
                }
            }
        }
    Mais si j'essaye de l'adapter sous cette forme;

    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
    18
    19
     
    public partial class frmInputContact : Form
        {
            public frmInputContact(string defaultText1, string defaultText2)
            {
                InitializeComponent();
                this.textBox1.Text = defaultText1;
                this.textBox2.Text = defaultText2;
            }
     
            public static DialogResult ShowfrmInputContact(ref string defaultText1,ref string defaultText2)
            {
                frmInputContact dlg = new frmInputContact(defaultText1, defaultText2);
                DialogResult result = dlg.ShowDialog();
                if (result == DialogResult.OK)
     
                    return result;
     
            }
    J'ai l'erreur suivant:
    'ProjectDBClient.frmInputContact.ShowfrmInputContact(ref string, ref string)'*: tous les chemins de code ne retournent pas nécessairement une valeur
    Comment faire une inputbox avec deux textbox et qui n'est valider que si les deux textbox sont différentes de "" ?

    Merci

  2. #2
    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
    Le problème vient de là :
    if (result == DialogResult.OK) return result;

    Que retounes tu si result != DialogResult.OK ?
    Tu ne l'as pas spécifié dans ton code, vu que le return ne s'applique que si result == DialogResult.OK.

    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 static DialogResult ShowfrmInputContact
                              (ref string defaultText1,ref string defaultText2)
    {
      frmInputContact dlg = new frmInputContact(defaultText1, defaultText2);
      DialogResult result = DialogResult.None ; 
      while (result == DialogResult.None 
      {
        result=ShowDialog() ;
        if (result == DialogResult.OK && (textBox1.Text!="" || textBox2.Text!  ="")) 
        { 
            MessageBox.Show("Erreur : valeurs vides") ; 
            result = DialogResult.None ; }
         }
      }
    return result;
    }

  3. #3
    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 : 44
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                if (result == DialogResult.OK)
     
                    return result;
    Le return est sous le if, donc si tu ne rentres pas dans le if, tu n'atteins jamais le return... à mon avis le if ne sert à rien d'ailleurs

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut
    Euh oui sauf que dans "public static DialogResult" je ne peux pas appeler les textbox...

  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
    Il faut juste créér 2 procédures, l'une statique, l'autre classique :
    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
    18
    19
    20
    21
    22
     
    public static DialogResult Static_ShowfrmInputContact
    (ref string defaultText1,ref string defaultText2)
    {
    frmInputContact dlg = new frmInputContact(defaultText1, defaultText2);
    return frmInputContact.Static_ShowfrmInputContact(ref defaultText1,ref defaultText2) ;
    }
     
    public Classic_DialogResult ShowfrmInputContact
    (ref string defaultText1,ref string defaultText2)
    {
    DialogResult result = DialogResult.None ; 
    while (result == DialogResult.None 
    {
    result=ShowDialog() ;
    if (result == DialogResult.OK && (textBox1.Text!="" || textBox2.Text! ="")) 
    { 
    MessageBox.Show("Erreur : valeurs vides") ; 
    result = DialogResult.None ; }
    }
    }
    return result;
    Ensuite, on peut améliorer en implémentant les event TextChanged sur les TextBox afin de modifier la propriété enabled du bouton OK suivant le contenu des textBox.La procedure Classic_DialogResult ShowfrmInputContact est alors à remplacer par un simple ShowDialog() .

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut
    presqu'au but.... j'ai une dernière erreur "la méthode doit avoir un type de retour" sur la procédure classique.

    Je vois pas ou est le probleme...

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2010
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 200
    Par défaut
    Ton erreur veut dire qu'il faut que tu définisses un type (par exemple "string") de retour sur ta méthode... Actuellement ta méthode renvoi "Classic_DialogResult" alors qu'elle devrait retourner un "DialogResult"...

    Graffito s'est trompé en écrivant la méthode, il voulait écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public DialogResult Classic_ShowfrmInputContact
    (ref string defaultText1,ref string defaultText2)
    à la place.

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

Discussions similaires

  1. Double condition: question
    Par El-Diablo- dans le forum C++Builder
    Réponses: 2
    Dernier message: 20/04/2007, 20h24
  2. ouverture d'un formulaire sur une double condition
    Par mat75019 dans le forum Access
    Réponses: 6
    Dernier message: 27/10/2006, 16h13
  3. Double condition sur une date
    Par Olivier95 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 26/06/2006, 13h34
  4. Double condition !!
    Par calimero642 dans le forum Langage
    Réponses: 2
    Dernier message: 14/06/2006, 13h49
  5. Réponses: 8
    Dernier message: 02/05/2006, 16h07

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