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 Presentation Foundation Discussion :

passage winform en wpf


Sujet :

Windows Presentation Foundation

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut passage winform en wpf
    Bonjour,

    J'ai programmé pas mal de petit trucs pour mon taff en Winform et je viens de me mettre au WPF.

    Je m'en suis sorti sur presque tout mais j'ai un problème que je n'arrive pas à régler. (pourtant ça doit être très simple)

    exemple :

    J'ai un fichier "Window1.xaml" avec dessus un label "label1" et un bouton "Button1"

    Le bouton contient le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
    essai()
    End Sub

    J'ai un fichier code qui contient la Sub essai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub essai()
    
    Window1.Label1.Content = "test"
    
    End Sub
    ça ne fonctionne pas, comment doit-on gérer le code pour pouvoir remplir un label sur une fenêtre lorsque le code n'est pas sur cette fenêtre ?

    Dites moi si je n'ai pas été assez clair.

    Merci d'avance si vous avez la réponse

  2. #2
    Membre éprouvé Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Points : 998
    Points
    998
    Par défaut
    Hello,

    Ton bout de code est censé fonctionner. Comment est assigné Windows1 dans ton "fichier de code" ? Il faut que cela soit la même instance que celle affichée.

    Tu pourrais aussi faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub essai(Label label)
    label.Content = "test"
    End Sub

    et bien sûr :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
    essai(label1)
    End Sub

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Salut,

    en effet le code n'est pas très complexe . Il devrait passer.
    as tu positionné le handler Button1_Click dans le Window1.xaml ? Sur le bon event ?

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Merci pour vos réponses.

    En fait, d'après ce que tu m'as écrit jmix90, je pense que mon problème vient du fait que Window1 n'est pas assigné dans mon fichier de code.

    Quel code je dois rajouter pour "l'assigner" ?

    Je pense que c'est juste le truc qui me manque.

    Merci beaucoup d'avance

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Citation Envoyé par nelb56 Voir le message
    Merci pour vos réponses.

    En fait, d'après ce que tu m'as écrit jmix90, je pense que mon problème vient du fait que Window1 n'est pas assigné dans mon fichier de code.

    Quel code je dois rajouter pour "l'assigner" ?

    Je pense que c'est juste le truc qui me manque.

    Merci beaucoup d'avance
    Il faut utiliser une syntaxe du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <Window x:Class="WpfApplication1.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" Height="300" Width="300">
        <Grid>
    ...
    (à adapter selon le namespace)

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    En fait mon fichier est fait comme ceci

    Le fichier Window1.xaml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <Window x:Class="Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" Height="300" Width="300">
        <Grid>
            <Button Height="60" Margin="72,0,82,68" Name="Button1" VerticalAlignment="Bottom">Button</Button>
            <Label Height="40" Margin="66,42,84,0" Name="Label1" VerticalAlignment="Top" ></Label>
        </Grid>
    </Window>

    La partie Window1.xaml.vb :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Class Window1 
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
            essai()
        End Sub
     
    End Class

    Le fichier CodeFile1.vb :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Module test
     
        Sub essai()
     
            Window1.Label1.Content = "test"
     
        End Sub
     
    End Module

    La liste d'erreur m'indique :

    Error 1 Reference to a non-shared member requires an object reference.
    Cette erreur cible sur le Window1.Label1 du fichier CodeFile1.vb



    Donc je pense qu'il me manque un lien entre les fichiers CodeFile1.vb et Window1.xaml, mais lequel, je ne sais pas.

  7. #7
    Membre éprouvé Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Points : 998
    Points
    998
    Par défaut
    Hello,

    Tu peux passer ta fenêtre en paramètre de ta méthode essai si tu veux. Cela sera plus simple !

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Points : 1 120
    Points
    1 120
    Par défaut
    Il te manque le lien entre l'event et le handler du button

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Button Height="60" Margin="72,0,82,68" Name="Button1" VerticalAlignment="Bottom" Click="Button1_Click">Button</Button>

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Salut jmix

    Je suis désolé mais je comprends pas ce que tu me dis de faire.

    Comment fait-on pour passer une fenêtre en paramètre de la méthode ?

  10. #10
    Membre éprouvé Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Points : 998
    Points
    998
    Par défaut
    Hello,

    Il faut transformer ta méthode essai en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Module test
        Sub essai(Window1 windows)
            windows.Label1.Content = "test"
        End Sub
    End Module
    Et ton appel dans le handler en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Class Window1 
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
            essai(this)
        End Sub
    End Class

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Salut Cybermax

    J'ai modifié le code comme tu me l'as indiqué mais ça ne corrige pas le problème de la liste d'erreur.

  12. #12
    Membre éprouvé Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Points : 998
    Points
    998
    Par défaut
    Citation Envoyé par nelb56 Voir le message
    J'ai modifié le code comme tu me l'as indiqué mais ça ne corrige pas le problème de la liste d'erreur.
    Oui, il te signalait une autre erreur

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    J'ai testé avec ton code, ça ne marche pas ...

    sur cette partie là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Class Window1 
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
            essai(this)
        End Sub
    End Class
    La liste d'erreur m'indique que
    Name 'this' n'est pas déclaré

    sur l'autre partie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Module test
        Sub essai(Window1 windows)
            windows.Label1.Content = "test"
        End Sub
    End Module
    sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sub essai(Window1 windows)
    la liste d'erreur indique
    Comma or ')' expected.
    sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    windows.Label1.Content = "test"
    la liste d'erreur indique
    'Label1' is not a member of 'Windows'.

  14. #14
    Membre éprouvé Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Points : 998
    Points
    998
    Par défaut
    Mmh, il faut corriger mes erreurs de syntaxe, je ne connais pas VB

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    ok, merci beaucoup alors d'essayer de m'aider si tu ne connais pas le VB, je vais essayer de corriger ça ...

  16. #16
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    this (c#) = Me (vb)

    Il me semble (ceci dit, tu peux ne rien mettre du tout)

    De plus un paramètre dans une fonction en vb doit donner qqc comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sub essai(ByVal w As Window)

  17. #17
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    YES !!!!

    Merci beaucoup à vous trois, ça fonctionne !!!

    Maintenant, je vais pouvoir finir la conversion de mon programme Winform en WPF.

    A bientôt et merci pour votre disponibilité.


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

Discussions similaires

  1. conseil passage application WinForm en WPF MVVM
    Par dominiqueFaure dans le forum Design Patterns
    Réponses: 1
    Dernier message: 01/04/2011, 18h10
  2. passage WinForm en WPF avec MVVM
    Par dominiqueFaure dans le forum Windows Presentation Foundation
    Réponses: 13
    Dernier message: 23/03/2011, 14h22
  3. de winform a wpf
    Par clod83 dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 02/01/2008, 12h01
  4. de winform a wpf
    Par clod83 dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 28/12/2007, 15h08
  5. Winforms ou WPF
    Par JuTs dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 01/10/2007, 17h32

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