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 :

Problème de conversion de VB.net en C#


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Par défaut Problème de conversion de VB.net en C#
    Bonjour,

    Je suis entrain d'étudier et de retranscrire le code VB.net en C#, se trouvant sur codeproject :
    http://www.codeproject.com/Articles/...Canvas-Control

    Mon problème se situe sur un control.
    Voici le code vb :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
      Private Sub CanvasDraw_MouseDown(sender As System.Object, e As System.Windows.Input.MouseButtonEventArgs) Handles Me.PreviewMouseDown
            Dim Actual_position, Modified_position As New Point
            Actual_position = Mouse.GetPosition(Me)
            Modified_position = Mouse.GetPosition(Me)
     
            MousePosition = "X: " & CInt(Actual_position.X) & " Y: " & CInt(Actual_position.Y)
     
            If CanvasEvent = SelectedDrawingEvent.SelectCursor Then
                If Mouse.RightButton = MouseButtonState.Pressed Then
                    CreateContextMenu()
                End If
            ElseIf CanvasEvent = SelectedDrawingEvent.AddPoints Then
                AddPointToCustomDrawingObject(Actual_position)
            ElseIf CanvasEvent = SelectedDrawingEvent.ZoomInRect Then
                RectangleZoom(Actual_position, e)
            Else
                If Mouse.LeftButton = MouseButtonState.Pressed Or Mouse.MiddleButton = MouseButtonState.Pressed Then
                    If Not CanvasEvent = SelectedDrawingEvent.PlacePoint Then
                        DrawCustomObjectWithLines(Actual_position, Modified_position)
                    Else
                        Dim NewCustomPoint As New CustomPoint("FileAttr", Actual_position)
                        Me.Children.Add(NewCustomPoint)
                        ClearTempVariables()
                    End If
                ElseIf Mouse.RightButton = MouseButtonState.Pressed Then
                    'Check if the Lines or Polygons could be ended or closed:
                    If MouseLeftButtonDownOnDrawingCanvas.Count > 1 Then
                        If CanvasEvent = SelectedDrawingEvent.DrawClosedPolygon Then
                            'Add a new polygon
                            Dim Points As New PointCollection
                            Points = MouseLeftButtonDownOnDrawingCanvas.Clone
                            Dim NewCustomPolygon As New CustomPolygon(MouseLeftButtonDownOnDrawingCanvas.Clone)
                            Me.Children.Add(NewCustomPolygon)
                            ClearTempVariables()
                        ElseIf CanvasEvent = SelectedDrawingEvent.DrawLine Then
                            'Add a new line
                            Dim NewCustomLine As New CustomLine(MouseLeftButtonDownOnDrawingCanvas.Clone)
                            Me.Children.Add(NewCustomLine)
                            ClearTempVariables()
                        Else
                            'The program should not have come this far
                            ClearTempVariables()
                            MessageBox.Show("You have not selected type of drawing")
                        End If
                        e.Handled = True
                    Else
                        ClearTempVariables()
                    End If
                End If
            End If
        End Sub
    Je n'arrive pas à bien retranscrire ce code là en C#
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Private Sub CanvasDraw_MouseDown(sender As System.Object, e As System.Windows.Input.MouseButtonEventArgs) Handles Me.PreviewMouseDown
    Actuellement j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	private void CanvasDraw_MouseDown(System.Object sender, System.Windows.Input.MouseButtonEventArgs e)
    Cependant lorsque je l'implement dans une mainwindows, l'événement ne se déclenche pas.
    Comment traduire Handles Me.PreviewMouseDown en C#?

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 247
    Par défaut
    Ca ne se traduit pas, cette structure de code n'existe pas en C#.

    Puisque tu es en WPF, tu vas dans xaml de ta form/conteneur/quesais-je tu rajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PreviewMouseDown="CanvasDraw_MouseDown"

  3. #3
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour masmeta

    Pour avoir la signature exacte du delegate d'evenement en csharp,il suffit
    dans le fichier code .cs de taper le handler d'event voulu suivi:
    -de "+","=",suivi de 2 fois la touche "tab"....

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
     
    namespace WpfApplication2
    {
        /// <summary>
        /// Logique d'interaction pour MainWindow.xaml
        /// </summary>
        public partial class CanvasDraw : Window
        {
            public CanvasDraw()
            {
                InitializeComponent();
                this.PreviewMouseDown += new MouseButtonEventHandler(CanvasDraw_PreviewMouseDown);
                this.MouseDown += new MouseButtonEventHandler(CanvasDraw_MouseDown);
                this.MouseLeftButtonDown += new MouseButtonEventHandler(CanvasDraw_MouseLeftButtonDown);
            }
     
            void CanvasDraw_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
            {
                throw new NotImplementedException();
            }
     
            void CanvasDraw_MouseDown(object sender, MouseButtonEventArgs e)
            {
                throw new NotImplementedException();
            }
     
            void CanvasDraw_PreviewMouseDown(object sender, MouseButtonEventArgs e)
            {
                MessageBox.Show("CanvasDraw");
            }
     
     
        }
    }
    Apres tu tapes le code .cs à l'interieur du gestionnaire de handler....
    bon code..

  4. #4
    Membre éclairé Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Par défaut
    merci de votre aide

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

Discussions similaires

  1. Problème conversion date vb.net access 2010
    Par ismaiila dans le forum VB.NET
    Réponses: 2
    Dernier message: 24/04/2014, 10h49
  2. Réponses: 2
    Dernier message: 29/10/2011, 20h44
  3. problème de conversion de types en vb.net
    Par yrifka dans le forum VB.NET
    Réponses: 12
    Dernier message: 30/07/2010, 11h57
  4. [.net c++]problème de conversion
    Par stgi02 dans le forum VC++ .NET
    Réponses: 3
    Dernier message: 10/05/2006, 07h57
  5. [VB.net]problème de conversion de code c# vers VB.net
    Par cladsam dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/10/2005, 14h07

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