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 :

Utilisation du résultat d'une textbox


Sujet :

C#

  1. #1
    Membre averti
    Inscrit en
    Février 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 49
    Par défaut Utilisation du résultat d'une textbox
    Bonjour
    Dans le code suivant :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     public partial class LoginForm : Form
        {
            public LoginForm()
            {
                InitializeComponent();
            }
     
            public void Login_TextChanged (object sender, EventArgs e)
            {
                string user = Login.Text;
     
            }
     
            public void Passwd_TextChanged(object sender, EventArgs e)
            {
                string pass = Passwd.Text;
            }
     
        }
     
        class TradingSoft : LoginForm
        {
            private ISession _session;
     
            private void LoginCallback(ISession session)
            {
                Console.WriteLine("Logged in, account ID: " + session.AccountDetails.AccountId);
                _session = session;
     
            }
     
            private static OnFailure FailureCallback(string failedFunction)
            {
                return failureResponse => Console.Error.WriteLine("Failed to " + failedFunction + " due to: " + failureResponse.Message);
            }
     
            [STAThread]
            public static void Main(string[] args)
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new LoginForm());
     
                string username = "";
                string password = "";
                TradingSoft myTradingSoft = new TradingSoft();
     
                LmaxApi lmaxApi = new LmaxApi("https://testapi.lmaxtrader.com");
                lmaxApi.Login(new LoginRequest(username, password, ProductType.CFD_DEMO), myTradingSoft.LoginCallback, FailureCallback("log in"));
     
            }
        }
    Comment utiliser les résultats des 2 textbox, je voulais utiliser ceci dans les textbox mais ça ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public string _user { get { return Login.Text; } set { Login.Text = value; } }
    Merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 69
    Par défaut
    Je ne comprends pas trop ce que tu veux faire. Tu veux pouvoir remplir les TextBox quand tu set l'attribut _user?

    Si tu veux récupérer le user et le mot de passe (qui se trouvent surement dans un formulaire), il faudrait que tu fasse ce traitement au moment de la validation (un clic sur un bouton)

  3. #3
    Membre averti
    Inscrit en
    Février 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 49
    Par défaut
    Oui je veux récupérer le username et le mot de passe pour pouvoir l'utiliser dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lmaxApi.Login(new LoginRequest(username, password, ProductType.CFD_DEMO), myTradingSoft.LoginCallback, FailureCallback("log in"));
    Donc en fin de compte je n'ai pas besoin de Login_TextChanged et Passwd_TextChanged, je peux tout utiliser directement dans Button_Click.

    En fin de compte je ne vois toujours pas ce que je dois mettre dans LogButton_Click

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 69
    Par défaut
    Exactement! Tu mets ton "string user = Login.Text;" et ton "string pass = Passwd.Text;" dans le code du bouton. Et tu fais la suite de ton traitement aussi la dedans

  5. #5
    Membre averti
    Inscrit en
    Février 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 49
    Par défaut
    Jusqu'à l'assignation ça va, mais après c'est là que je bloque.
    On me dit que c'est inaccessible, pourtant les classes sont publiques.

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 69
    Par défaut
    Qu'est-ce qui est inaccessible? et précise nous où et comment est déclaré chaque champ

  7. #7
    Membre averti
    Inscrit en
    Février 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 49
    Par défaut
    Plus ou moins ce que je ne sais pas c'est comment "envoyer" user et pass qui se trouvent dans la classe LoginForm, dans la sous classe Main qui fait partie de la classe TradingSoft.
    Dois-je faire hériter TradingSoft de la classe Loginform ?
    Je remet mon cs comme il est pour l'instant :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using Com.Lmax.Api;
     
     
    namespace CondorTrader
    {
        public partial class LoginForm : Form
        {
            public LoginForm()
            {
                InitializeComponent();
            }
     
            public void LogButton_Click(object sender, EventArgs e)
            {
                string user = Login.Text;
                string pass = Passwd.Text;
            }
     
        }
     
        class TradingSoft
        {
            private ISession _session;
     
            private void LoginCallback(ISession session)
            {
                Console.WriteLine("Logged in, account ID: " + session.AccountDetails.AccountId);
                _session = session;
     
            }
     
            private static OnFailure FailureCallback(string failedFunction)
            {
                return failureResponse => Console.Error.WriteLine("Failed to " + failedFunction + " due to: " + failureResponse.Message);
            }
     
            [STAThread]
            public static void Main(string[] args)
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new LoginForm());
     
                string username = "";
                string password = "";
                TradingSoft myTradingSoft = new TradingSoft();
     
                LmaxApi lmaxApi = new LmaxApi("https://testapi.lmaxtrader.com");
                lmaxApi.Login(new LoginRequest(username, password, ProductType.CFD_DEMO), myTradingSoft.LoginCallback, FailureCallback("log in"));
     
            }
        }
    }

  8. #8
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 69
    Par défaut
    Dois-je faire hériter TradingSoft de la classe Loginform ?
    Non pas besoin.

    En général quand tu as un programme graphique, il faut faire tout le traitement dans le code de la classe appelée par "Application.Run(new LoginForm());".

    D'ailleurs j'ai un doute, mais il me semble que si le code est écrit après le "Application.Run(new LoginForm());", il ne sera jamais appelé tant que l'application graphique (LoginForm ici) ne s'est pas terminée (par l'appui sur la croix rouge par ex).

    En fait il faudrait que tu fasses tout le traitement dans la fonction "LogButton_Click".

    On obtiendrait plutôt qqch du genre :

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using Com.Lmax.Api;
     
     
    namespace CondorTrader
    {
        public partial class LoginForm : Form
        {
            public LoginForm()
            {
                InitializeComponent();
            }
     
            public void LogButton_Click(object sender, EventArgs e)
            {
                string user = Login.Text;
                string pass = Passwd.Text;
     
                TradingSoft myTradingSoft = new TradingSoft();
     
                LmaxApi lmaxApi = new LmaxApi("https://testapi.lmaxtrader.com");
                lmaxApi.Login(new LoginRequest(username, password, ProductType.CFD_DEMO), myTradingSoft.LoginCallback, FailureCallback("log in"));
     
            }
     
        }
     
        class TradingSoft
        {
            private ISession _session;
     
            private void LoginCallback(ISession session)
            {
                Console.WriteLine("Logged in, account ID: " + session.AccountDetails.AccountId);
                _session = session;
     
            }
     
            private static OnFailure FailureCallback(string failedFunction)
            {
                return failureResponse => Console.Error.WriteLine("Failed to " + failedFunction + " due to: " + failureResponse.Message);
            }
     
            [STAThread]
            public static void Main(string[] args)
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new LoginForm());
            }
        }
    }

  9. #9
    Membre averti
    Inscrit en
    Février 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 49
    Par défaut
    Ça marche presque...
    Maintenant il ne me laisse plus accéder à LoginCallback et FailureCallback, pourtant myTradingSoft est bien un "new TradingSoft()".

  10. #10
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 69
    Par défaut
    T'es 2 méthodes sont "private". Tu ne peux donc pas y accéder depuis une autre classe. Change les en public

  11. #11
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 69
    Par défaut
    Je n'ai pas adapté ton code quand je l'ai déplacé. Tu devrais obtenir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lmaxApi.Login(new LoginRequest(username, password, ProductType.CFD_DEMO), myTradingSoft.LoginCallback, TradingSoft.FailureCallback("log in"));
    En passant les 2 méthodes en public

  12. #12
    Membre averti
    Inscrit en
    Février 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 49
    Par défaut
    Mon soucis reste pour FailureCallback qui est static donc il ne peut pas être reconnu dans LogButton

    EDIT : j'avais pas vu ton message précédent, mais je croyais qu'un static ne pouvais être appelé que dans un static.

  13. #13
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 69
    Par défaut
    Appelle ta méthode comme ça :

    TradingSoft.FailureCallback

    Et oui tu peux utiliser des méthodes statiques dans une classe non statique

    Est-ce que ton problème est résolu?

  14. #14
    Membre averti
    Inscrit en
    Février 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 49
    Par défaut
    Oui mais j'aurais encore une dernière question avant de clore le sujet :
    A quel endroit je dois mettre ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LoginForm.hide;
    CondorTrader.show;
    et surtout comment le faire en vérifiant que la connection à bien été effectuée.

  15. #15
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 69
    Par défaut
    A quel endroit je dois mettre ceci :
    Code :

    LoginForm.hide;
    CondorTrader.show;
    je pense qu'il faut les placer dans le même endroit où on les a déclarés et instanciés.

    Pour savoir comment la connexion a bien été effectué je ne sais pas trop en voyant cette partie de code.

  16. #16
    Membre averti
    Inscrit en
    Février 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 49
    Par défaut
    J'aurais une idée mais je ne suis pas sûr : vérifier que TradingSoft._session n'est pas null ?
    Serais ce possible ?

  17. #17
    Membre averti
    Inscrit en
    Février 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 49
    Par défaut
    J'ai un début de réponse mais ce n'est pas encore satisfaisant.
    J'ai mis ce code dans LoginCallback :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public void LoginCallback(ISession session)
            {
                Console.WriteLine("Logged in, account ID: " + session.AccountDetails.AccountId);
                _session = session;
                LoginForm log = new LoginForm();
                log.Hide();
                CondorTrader appli = new CondorTrader();
                appli.Visible = true;
            }
    Mais le problème, ça ne cache rien du tout, par contre ça ouvre bien l'autre fenêtre seulement avec les bons identifiants.

Discussions similaires

  1. [FPDF] Utilisation du résultat d'une requête MySQL
    Par ns_deux dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 25/01/2009, 01h02
  2. requete avec résultat dans une textbox
    Par programmer_c'est_dur dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 21/09/2007, 21h53
  3. Réponses: 7
    Dernier message: 21/05/2007, 13h21
  4. Utilise la valeur d'une textbox dans une requête sql
    Par podidoo dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 29/03/2006, 09h53
  5. Utilisation du résultat d'une requête
    Par Manu14400 dans le forum Access
    Réponses: 1
    Dernier message: 15/10/2005, 13h01

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