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 :

Saisr données sur WinForm


Sujet :

Windows Forms

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 875
    Par défaut Saisr données sur WinForm
    Bonjour à tous,
    Je débute en c# et je voudrais pouvoir saisir une donnée sur une application winForm Visual Studio, sans passer par un formulaire. Pour mieux expliquer ma demande j'ai vu si j'ai bien compris qu'on le codé sur une application console comme ceci : Je voudrais faire la même chose sur une WinForm.
    Si quelqqu'un a une idée. MERCI

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 918
    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 918
    Par défaut
    Qui dit application Winform, dit formulaire.

    WinForm est un diminutif pour Windows Form.
    Et Windows Form signifie littéralement "Formulaire Windows".
    Cela n'a pas de sens de faire du Winform sans afficher de formulaire.

    Quel est le vrai besoin ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 875
    Par défaut
    Bjr et merci,
    Simplement saisir une donnée pendant un traitement et sans formulaire (même si je suis dans une appli winForm, j'utilise le formulaire pour autre chose)

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 398
    Par défaut
    https://stackoverflow.com/questions/...ms-application
    Mais vous allez devoir vous frotter à d'épineux problèmes comme le multi-threading, le modèle de mémoire (synchronisation) etc...
    Rien de très engageant pour un débutant.

    Il faut bien voir qu'une application "évènementielle", comme les application WinForm bouclent pour traiter des évènements/message tandis qu'une application "console" attend les entrées console.
    C'est pas du tout les mêmes paradigmes de programmation.

    Venant d'un débutant, on a l'impression que vous n'avez pas compris ces détails et que vous n'avez pas encore choisi entre la chèvre et le chou.

  5. #5
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 918
    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 918
    Par défaut
    Citation Envoyé par xeron33 Voir le message
    Bjr et merci,
    Simplement saisir une donnée pendant un traitement et sans formulaire (même si je suis dans une appli winForm, j'utilise le formulaire pour autre chose)
    Non, ça c'est la solution que tu as imaginé pour résoudre le problème.

    Par ailleurs, saisir une donnée pendant un traitement implique de mettre en pause le traitement le temps de saisir la donnée.
    Que tu saisisses cette données dans la console ou bien dans un formulaire, cela revient strictement au même.
    Au final tu affiches une fenêtre pour saisir une donnée.

    Quel est cette donnée ?
    Est-elle déjà inscrite quelque part au moment du traitement (ex : dans un fichier, dans une DB, dans la mémoire ) ?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 875
    Par défaut
    Quel est cette donnée ?
    Est-elle déjà inscrite quelque part au moment du traitement (ex : dans un fichier, dans une DB, dans la mémoire ) ?
    Bjr et merci voiçi la partie du code ou je veux saisir cette donnée, actuellement c'est écrit en mode console mais je voudrais pouvoir l'adapter pour faire la même chose en mode winForm.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    static void Main()
    {
        ..........
        int i = 0;
        ...........
        i = int.Parse(Console.ReadLine());
        ...........
    }
    Comme tu le vois,j'ai mis des pointillés pour pas tout écrire.i est en mémoire

    En fouillant j'ai trouvé cette solution qui fonctionne en utilisant la référence Visual Basic :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    using static Microsoft.VisualBasic.Interaction;
    string input = Interaction.InputBox("Prompt", "Title", "Default", i);
    Mais si que tu as d'autres solutions ou des remarques n'hésite pas ...
    Merci encore

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 398
    Par défaut
    des remarques n'hésite pas ...
    J'ai vraiment l'impression de voir un enfant de 4 ans qui fait mumuse avec des ciseaux à côté d'une prise électrique.

    Invoquer des vieux composants COM des années 1990 pour rendre inutilisable un programme, GG.

    Avec votre modification, vous vous retrouvez avec un programme qui ne peut plus être lancé de manière non interactive (Service Windows, Tâche planifiée, etc...) et qui ne peut plus être piloté directement par un autre programme (les | et autres "<" dans les scripts).

    Vous n'avez fait que réduire l'utilisabilité de votre programme.

    Si vous devez pouvoir être utilisé en mode interactif et non interactif, architecturez votre application pour que votre code "Métier" ne soit pas dépendant du type d'Interface Homme Machine que vous utilisez.
    Vous aurez 2 IHM pour un seul module métier.

    Pensez à l'usage de votre programme avant de vouloir vous électrocuter sur une prise de courant.


  8. #8
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 918
    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 918
    Par défaut
    Sans savoir ce que fais ce traitement, il est compliqué de donner une solution adaptée.

    La première idée qui me vient à l'esprit est de placer ce traitement dans une méthode au sein d'une classe dédiée à ce traitement et de passer la valeur de i en paramètre.
    De cette manière, c'est l'IHM qui transmet l'information et ton traitement se contente de l'utiliser sans se soucier de sa provenance.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public static class MyWork
    {
        public static void Treatment(int input)
        {
            ..........
            int i = 0;
            ...........
            i = input;
            ...........
        }
    }
    Dans une application console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyWork.Treatment(int.Parse(Console.ReadLine()));
    Dans une application winform :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyWork.Treatment(MyNumericUpDown.Value);

Discussions similaires

  1. recuperer des donnes sur la connexion
    Par newbiedelphi dans le forum Delphi
    Réponses: 1
    Dernier message: 25/11/2006, 23h41
  2. Réponses: 3
    Dernier message: 27/04/2006, 10h01
  3. [VB NET]: Evenement sur Winform: "sur réduction"
    Par ADONET dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/02/2006, 11h52
  4. Remonter des donnes sur ACCESS
    Par pierre bunel dans le forum Access
    Réponses: 1
    Dernier message: 22/12/2005, 17h03
  5. donné sur un fichier word
    Par jekeclo dans le forum Access
    Réponses: 2
    Dernier message: 05/12/2005, 19h16

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