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ére la valeur du form1 dans form2


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 10
    Points : 13
    Points
    13
    Par défaut récupére la valeur du form1 dans form2
    j'ai créé une form2 depuis la form1.
    comment je peut récupérer la valeur "y" affichée dans form1 et l'utiliser dans form2 pour calculer la formule x=0.65+0.01*Y

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    question qui passe plusieurs fois par semaine, merci de chercher
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 76
    Points : 49
    Points
    49
    Par défaut
    Salut ,

    Tu peux faire : form1.Y.text

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par chepac Voir le message
    Salut ,

    Tu peux faire : form1.Y.text
    très déconseillé, le seul langage .net à permettre ca est vb, ca va à l'encontre de la POO

    le mieux est de passer une référence du form dans le sub new de l'autre
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 76
    Points : 49
    Points
    49
    Par défaut
    C'est à dire avec les getter/setter ?

    Quels sont les risques ? .Net n'est pas égal à VB

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    .net est une plateforme de développement qui accueille plusieurs langages (vb.net, c#, j#, delphi.net)
    tous ces langages utilisent le framework (ensemble de classe de haut niveau) et sont compilés dans le meme langage intermédiaire, le MSIL

    les risques c'est que ca part du principe qu'une form = une instance, ce qui est faux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim f as new form2 
    f.show
    dim f2 as new form1
    f2.show
    ce code créé 2 instances de form2 et les affiche

    depuis vb faire form2.quelquechose est donc insensé, form2 est une variable cachée de vb qui pointe vers une seule instance, ce n'est pas garanti que ca tombe sur celle que tu souhaites


    il vaut mieux donc passer une instance de la form à celle qui doit pouvoir utiliser quelque chose dessus

    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
    public class form2
     
     
      private _f1 as form1
      public sub new (f1 as form1)
        initializecomponents
        _f1 = f1
      end sub
     
     
      public sub autre
         _f1.textbox1.Text 
      end sub
     
    end class
    ici sub autre accède à un textbox de form1 mais pas n'importe quelle form1, celle qui a créé cette form2 (car il pourrait y avoir plusieurs form1 d'ouvertes)

    de la meme manière sur un bouton de form1 qui doit afficher form2, il ne faut pas faire form2.show mais dim f as new form2 puis f.show
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 76
    Points : 49
    Points
    49
    Par défaut
    Merci du complément d'informations , je vais modifier mon code

    Pourtant en java , cela ne se passe pas comme sa ?

  8. #8
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    comment ca ?

    java n'a rien à voir avec .net
    ils ont commun que ce sont des langages orientés objet, donc je pense qu'il faut aussi créer des instances des objets ...


    ils ont aussi en commun que ce sont des langages semi compilés
    un programme en C est compilé pour un OS et une plateforme en code natif pour celle ci, il ne peux s'executer que dans ce contexte
    un programme .net ou java est compilé dans un langage intermédiaire qui est ensuite recompiler à l'execution en code natif selon l'os et la plateforme

    la machine virtuelle de java (qui s'occupe de transcrire le code intermédiaire en code natif) est disponible sur des tas de plateforme, du pc au téléphone portable en passant par les voitures et les box, pour des os allant de windows à linux ...

    la clr de .net (équivalent de la machine virtuelle java) est disponible pour windows allant de windows98se à windows7 pour windows mobile et donc pc, smartphone, certaines douchettes code barre etc...
    un programme .net est au passage optimisé pour la situation dans laquelle il s'execute (présence d'un os 32 ou 64 bits, processeurs multicore ...)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 76
    Points : 49
    Points
    49
    Par défaut
    Au niveau de la récupération d'un valeur . En java , Pour récupérer une valeurs d'une autre classe , on peut se servir d'un GET , il me semble ? Effectivement pour avoir accés au get , il faut avoir instanciée un objet de cette classe

    On ne peut donc pas dire que .Net soit portable ?
    Quel question , comment un langage microsoft peut il être portable

    En tout cas , merci pour ce complément d'information , bien intéressant .

  10. #10
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Points : 119
    Points
    119
    Par défaut
    Bonjour,

    Et en faisant une "property", ça ne marcherait pas ? En faisant par exemple :

    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
    Public Class Form2
     
    Private y as integer = 0
     
    Public Property chiffre as integer
    Get
    Return y
    End Get
    Set (ByVal value as integer)
    y = value
    End Set
    End Property
     
    End Class
     
     
    Public Class Form1
     
    Sub Ouverture_form2
    Dim F as new Form2
    F.chiffre = textboxy.Text
    F.Show
    End Sub
     
    End Class

  11. #11
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par chepac Voir le message
    Au niveau de la récupération d'un valeur . En java , Pour récupérer une valeurs d'une autre classe , on peut se servir d'un GET , il me semble ? Effectivement pour avoir accés au get , il faut avoir instanciée un objet de cette classe

    On ne peut donc pas dire que .Net soit portable ?
    Quel question , comment un langage microsoft peut il être portable

    En tout cas , merci pour ce complément d'information , bien intéressant .
    un get c'est une propriété en .net (avec get et set) donc oui si tu veux récupérer quelque chose sur une instance, tu peux mettre cette chose dans un property

    une appli .net a besoin du framework et de la clr pour etre interpreté
    la clr est fourni par microsoft pour windows (et windows mobile)
    le projet mono permet d'utiliser des programme basé sur le framework 1.1 sur linux, le framework 2 est en cours de portabilité je crois (peut etre fini)

    avec visual studio 2008 il est possible de faire des morceaux de site en silverlight
    et là microsoft fourni le plugin pour ie, firefox et safari, donc sous windows, linux ou mac os
    (enfin je crois que seul silverlight 1 est porté hors windows)
    les applis xbap du framework 3.5 quand à elles ne fonctionnent que sous windows, mais fonctionnent sous firefox
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Réponses: 12
    Dernier message: 16/12/2009, 12h00
  2. comment avoir une valeur d'une form1 dans un autre form
    Par sabrina_beautyful dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/05/2009, 14h53
  3. Récupéré la valeur affichée dans tableau croisé
    Par stephanie dans le forum Formules
    Réponses: 1
    Dernier message: 07/11/2008, 14h52
  4. Réponses: 21
    Dernier message: 22/05/2008, 16h51
  5. Réponses: 3
    Dernier message: 22/06/2006, 23h23

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