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

Windows Forms Discussion :

Récupérer la valeur d'une textbox depuis une class [Débutant]


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2021
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Récupérer la valeur d'une textbox depuis une class
    Bonjour cher Dev

    Désolé si la question à déjà été posée mais j'ai cherché partout, testé des dizaines de solutions mais je bloque. Je début et j'ai deux questions pour vous.

    Première: Comment récupérer la valeur d'une textbox dans une class.

    - Je créé ma textbox dans une grid (Xaml WPF), et je l'appelle Box_AdresseIP et un textBlock que j'appelle Block_AdresseIP
    - Je créé un bouton que j'appelle Bouton_Value
    - Je créé une class que j'appelle Resultat (par exemple).

    Dans ma class je créé une procédure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class Resultat : MainWindow
    {
     
       public void resultat()
        {
          MainWindow.Block_AdresseIP.Text = MainWindows.Box_AdresseIP.Text
        }
     
    }

    Ensuite dans la class MainWindow je créé l'événement Click du bouton et j'instancie ma class.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class MainWindow : Window
    {
     
    private void Bouton_Value_Click(object sender, EventArgs e)
    {
      Resultat result = new Resultat();
      result.resultat();
    }
    }
    Je lance l'application, je rentre mon adresse IP dans la textBox et au click rien ne se passe.

    2éme question
    ************

    Il est préférable de créer mais controls dans différente class et de les ajouter dynamiquement à l'initialisation ou créer mes controls directement dans ma grid (xaml)


    Merci pour vos réponses

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 667
    Points : 5 235
    Points
    5 235
    Par défaut
    L'erreur est sur le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private void Bouton_Value_Click(object sender, EventArgs e)
    {
      Resultat result = new Resultat();
      result.resultat();
    }
    Sur le clic de ton bouton, le "new Resultat()" va instancier une nouvelle fenêtre (non affichée) et sur laquelle tu n'a pas pu saisir d'information.
    Puis dans cette même fenêtre (non affichée et non remplie) le "result.resultat();" va recopier le contenu (vide) de la zone Box_AdresseIP dans Block_AdresseIP.

    Ceci aurait suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class MainWindow : Window
    {
     
    private void Bouton_Value_Click(object sender, EventArgs e)
    {
      MainWindow.Block_AdresseIP.Text = MainWindows.Box_AdresseIP.Text;
    }
    }

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2021
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Trouvé à moitié
    Bonjour,

    Merci pour ta réponse. J'ai continué à chercher et à tester et j'ai trouvé la solution à moitié.

    - Dans ma class Resultat inutile de faire un héritage sur MainWindow
    - Effectivement il y a plusieurs façon de le faire


    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
     
     
    class Resultat
        {
     
            public string Adresse_IP { get; set; }
     
            public Resultat()
            {
            }
     
            Public string Retour()
            {
               return Adresse_IP;
            }
         }
    Puis dans ma class MainWindow

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    class MainWindow : Window
    {
     
    private void Bouton_Value_Click(object sender, EventArgs e)
    {
      Resultat result = new Resultat();
      result.Adresse_IP = Box_Adresse_IP.Text;
      result.Retour();
    }
    }
    - La deuxième solution étant de mettre en paramètre dans le constructeur Resultat() et de déclarer ma variable en privée.

    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
     
     
    class Resultat
        {
     
            private string Adresse_IP;
     
            public Resultat(string adresseip)
            {
               Adresse_IP = adresseip;
            }
     
            Public string Retour()
            {
               return Adresse_IP;
            }
         }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    class MainWindow : Window
    {
     
    private void Bouton_Value_Click(object sender, EventArgs e)
    {
      Resultat result = new Resultat(Box_Adresse_IP.Text);
      result.Retour();
    }
    }
    Pourquoi solution à moitié, car ça ne fonctionne pas à chaque fois surtout quand je souhaite appeler une méthode qui ping mon adresse IP.

    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
    28
    29
    30
    31
     
     
    class Alerte
        {
            public string Test_Ping { get; set; }
     
            public Alerte()
            {
            }
     
            public void Methode_Alerte_Ping()
            {
                try
                {
                    Ping ping = new Ping();
                    PingReply reply = ping.Send(Test_Ping, 1000);
     
                    if (reply.Status == IPStatus.Success)
                    {
                        MessageBox.Show("Ping OK", "Passerelle erreur", MessageBoxButton.OK, MessageBoxImage.Information);
                    }
                    else
                    {
                        MessageBox.Show("Ping KO", "Passerelle erreur", MessageBoxButton.OK, MessageBoxImage.Information);
                    }
                }
                catch
                {
                    MessageBox.Show("Impossible de pinger la passerelle.", "Erreur ping", MessageBoxButton.OK, MessageBoxImage.Information);
                }
            }

    Puis dans ma class MainWindow

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    class MainWindow : Window
    {
     
    private void Bouton_Value_Click(object sender, EventArgs e)
    {
      Alerte alerte= new Alerte();
      alerte.Test_Ping = Box_Adresse_IP.Text;
      alerte.Methode_Alerte_Ping();
    }
    }
    Résultat > Me renvoi tout le temps le catch.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2021
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Résolu
    J'ai trouvé mon erreur la class Ping existe déjà dans System.Net.NetworkInformation. J'ai donc changé le nom de ma class et ça fonctionne.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/04/2010, 19h04
  2. Réponses: 5
    Dernier message: 09/04/2010, 16h49
  3. Réponses: 8
    Dernier message: 17/06/2009, 16h40
  4. [MySQL] Récupérer la valeur d'une list depuis ma BDD
    Par divad dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/07/2008, 14h01
  5. récupérer des valeur dans une textbox..
    Par mohe27 dans le forum ASP.NET
    Réponses: 11
    Dernier message: 15/12/2007, 19h37

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