Problème lié aux événements

cs_Trim Messages postés 60 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 4 septembre 2023 - 8 mars 2013 à 22:30
cs_Trim Messages postés 60 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 4 septembre 2023 - 12 mars 2013 à 20:23
Bonjour,

Sur mon application WPF, j'ai le code suivant:

XAML:
<Window x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Expander x:Name="Expander1" HorizontalAlignment="Left" VerticalAlignment="Top" Header="Groupe1">
            <Expander x:Name="Expander2" HorizontalAlignment="Left" VerticalAlignment="Top" Header="Groupe2">
            </Expander>
        </Expander>
    </Grid>
</Window>


Class MainWindow 
    Private Sub Expander1_MouseDoubleClick(sender As Object, e As MouseButtonEventArgs) Handles Expander1.MouseDoubleClick
        Expander1.Header += "Hello world"
    End Sub

    Private Sub Expander2_MouseDoubleClick(sender As Object, e As MouseButtonEventArgs) Handles Expander2.MouseDoubleClick
        Expander2.Header += "Hello world"
    End Sub
End Class



Comme vous pouvez le voir, l'expander2 est l'enfant de l'expander1. Quand je double clique sur l'expander2, les DEUX fonctions liés à l'événement du double clique sont déclenchés. Comment faire pour ne déclencher que l'événement de l'expander2 quand je clique sur celui-ci ? (tout en gardant la même configuration parent-enfant)

6 réponses

cs_Trim Messages postés 60 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 4 septembre 2023 3
12 mars 2013 à 12:43
UP, si quelqu'un sais.
0
Utilisateur anonyme
12 mars 2013 à 14:20
Bonjour,

Jette un coup d'oeuil sur cet article msdn. (prévois du café avant )
0
Utilisateur anonyme
12 mars 2013 à 14:21
Zut! le lien n'affiche pas le début de page. Le revoici donc ici.
0
cs_Trim Messages postés 60 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 4 septembre 2023 3
12 mars 2013 à 14:53
Salut Banana32,

et tout d’abord merci de ta réponse.

En effet j'ai déjà lu cette page (avec une dose de café :D) et essayé d'appliquer des tentatives sans succès. J'ai testé avec PreviewMouseDown/MouseDown et Handle=True mais ça ne marche pas sur mon cas (MouseDoubleClick): cependant, ça marche sur d'autres évents comme collapse par exemple.

J'ai testé aussi avec RemoveHandler, mais la, je supprime totalement l'évènement du double clique sur mon control :/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
12 mars 2013 à 19:02
Je jette un coup d'œil (ce coup ci ça passe) de mon côté et je te tiens au courant si j'arrive à un résultat concluant. Il se pourrait que ça me serve un jour
0
cs_Trim Messages postés 60 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 4 septembre 2023 3
12 mars 2013 à 20:23
Je te met mes tests:

Test1, ne marche pas:
    Private Sub Expander1_MouseDoubleClick(sender As Object, e As MouseButtonEventArgs) Handles Expander1.MouseDoubleClick
        Expander1.Header += "Hello world"
    End Sub

    Private Sub Expander2_MouseDoubleClick(sender As Object, e As MouseButtonEventArgs) Handles Expander2.MouseDoubleClick
        e.Handled = True 'Ne marche pas
        Expander2.Header += "Hello world"
    End Sub


Test2, marche:
    Private Sub Expander1_Collapsed(sender As Object, e As RoutedEventArgs) Handles Expander1.Collapsed
        Expander1.Header += "Salut tout le monde"
    End Sub

    Private Sub Expander2_Collapsed(sender As Object, e As RoutedEventArgs) Handles Expander2.Collapsed
        e.Handled = True 'Marche
        Expander2.Header += "Salut tout le monde"
    End Sub


Test3, ne marche pas:
    Private Sub Expander1_PreviewMouseDoubleClick(sender As Object, e As MouseButtonEventArgs) Handles Expander1.PreviewMouseDoubleClick
        Expander1.Header += "Hello world"
    End Sub

    Private Sub Expander2_PreviewMouseDoubleClick(sender As Object, e As MouseButtonEventArgs) Handles Expander2.PreviewMouseDoubleClick
        e.Handled = True 'Ne marche pas
        Expander2.Header += "Hello world"
    End Sub



Test4, marche mais du coup je n'est plus le double clique sur l'expander cible...
    Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
        RemoveHandler Expander1.MouseDoubleClick, AddressOf Expander1_MouseDoubleClick
    End Sub




PS: ne fait pas tout les tests en même temps, tu ne vas plus rien n'y comprendre ^^
0
Rejoignez-nous