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

VB.NET Discussion :

WPF Communication entre sub du module 1 et les objets du MainWindow [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 89
    Par défaut WPF Communication entre sub du module 1 et les objets du MainWindow
    Bonjour,

    Je suis débutant en VB.net et surtout je n'ai aucune formation en programmation (je me débrouille à force de volonté sous Excel en VBA). Ceci étant dit, j'ai voulu me lancer en VB.net application WPF.

    Mon projet est construit ainsi :

    1°) J'ouvre MainWindow
    2°) un label et un bouton s'affichent
    3°) Lorsque je clique sur le bouton ça m'appelle une procédure contenue dans le module 1
    4°) Cette sub a pour objectif d'agir sur les contrôles contenu dans le MainWindow (ici cacher le label)

    Je n'arrive pas à réaliser le point 4. J'ai essayé de déclarer du Public, du Shared mais je bloque encore et encore, ma recherche sur le net ne m'apporte pas la solution (où du moins je ne la comprends pas, restons humble )

    Je m'excuse par avance si ma façon de coder vous offense

    Voici l'exemple minimal :

    MainWindow.xaml :

    Code xaml : 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
    <Window x:Class="MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:WpfApp1"
            mc:Ignorable="d"
            Title="MainWindow" MinWidth="100" MinHeight="50">
     
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition/>
            </Grid.RowDefinitions>
     
            <Label x:Name="lbl" Content="Label" Grid.Row="0" />
            <Button x:Name="btn" Content="Button" Grid.Row="1"/>
        </Grid>
    </Window>

    MainWindow.xaml.vb :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Class MainWindow
        Private Sub btn_Click(sender As Object, e As RoutedEventArgs) Handles btn.Click
            Masquer_Label()
       End Sub
    End Class
    Module1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Module Module1
        Sub Masquer_Label()
            MainWindow.lbl.Visibility = Visibility.Hidden
        End Sub
    End Module
    Merci de votre aide

  2. #2
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 89
    Par défaut
    J'ai trouvé une "solution" mais ça me semble bien sale et pas correct j'aurai aimé que le Bob.visibility suffise...

    MainWindow.xaml
    Code xaml : 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
    <Window x:Class="MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:WpfApp1"
            mc:Ignorable="d"
            Title="MainWindow" MinWidth="100" MinHeight="50">
     
        <Grid x:Name="Win">
     
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition/>
            </Grid.RowDefinitions>
     
            <Label x:Name="lbl" Content="Label" Grid.Row="0" />
            <Button x:Name="btn" Content="Button" Grid.Row="1"/>
     
        </Grid>
     
    </Window>

    MainWindow.xaml.vb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Class MainWindow
     
        Private Sub btn_Click(sender As Object, e As RoutedEventArgs) Handles btn.Click
            Masquer_Label()
            lbl.Visibility = Bob.visibility
        End Sub
     
    End Class
    Module1.vb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Module Module1
        Public Bob As Object = New MainWindow().lbl
     
        Sub Masquer_Label()
            Bob.visibility = Visibility.Hidden
        End Sub
     
    End Module

  3. #3
    Membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Novembre 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Novembre 2021
    Messages : 7
    Par défaut
    Bonjour Vincent23,

    Etant "Débutant" aussi de mon côté, je vais peut être sortir une énormité cependant, si je souhaite rendre un label invisible :
    LabelName.Visible = False
    Si le label est appelé à partir d'un module :
    FormulaireName.LabelName.Visible = False
    Et si je souhaite gérer plusieurs label, je passe par une liste qui contient le nom des label souhaités.

    Cordialement

  4. #4
    Membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Novembre 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Novembre 2021
    Messages : 7
    Par défaut
    Après relecture du post (dans le module) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public sub Masquer_Label(_item as object)
    FormulaireName.Control(_item).Visible = False
    End sub
    et le bouton devrait contenir : Masquer_Label(LabelName), je crois mais je ne l'ai pas testé.

  5. #5
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 89
    Par défaut
    Merci pour cette réponse et ton intérêt pour mon pb :

    par contre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MainWindow.Control(_item).visible = False
    Me renvoie une erreur : Control n'est pas un membre de Window

  6. #6
    Membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Novembre 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Novembre 2021
    Messages : 7
    Par défaut
    Re,

    N'utilisant pas WPF, je me suis fait avoir.
    Cependant j'ai ouvert un projet WPF pour regarder et fait (voir ci-dessous) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Class MainWindow
        Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
            cacher(LabelName)
        End Sub
    End Class
    Module Module1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Public Sub cacher(lbl As Object)
            lbl.Visibility = Visibility.Hidden
        End Sub
    End Module
    Pour moi, cela fonctionne.
    En espérant que c'est bien ce que tu attends.

    Cordialement

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

Discussions similaires

  1. [Débutant] (C#/WPF) Communication entre 2 UserControl
    Par s_nake dans le forum C#
    Réponses: 0
    Dernier message: 23/05/2012, 22h23
  2. [WPF - MVVM] Communications entre ViewModels
    Par NeoKript dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 06/02/2012, 14h06
  3. [C#][WPF] Communication entre Threads
    Par Floco dans le forum Windows Presentation Foundation
    Réponses: 17
    Dernier message: 14/04/2011, 19h54
  4. [WPF][WCF] Communication entre deux applications
    Par DotNET74 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 16/08/2010, 20h54
  5. Communication entre vb6 et wpf.
    Par NejNej dans le forum Windows Presentation Foundation
    Réponses: 7
    Dernier message: 01/04/2010, 10h07

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