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 :

Comment convertir un projet de C# à Vb.net


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut Comment convertir un projet de C# à Vb.net
    Bonjour à tous !

    Alors j'ai besoin d'un peu d'aide s'il vous plait !

    Je m'explique, en fait j'ai abandonné l'idée d'appeler un clavier virtuel (osk.exe) car en fait la tablette est munie d'un clavier (dans la barre d'outils en bas et ce n'est pas le même que osk.exe, celui de la tablette windows s'appelle TabTip.exe mais impossible de lui fournir le chemin) et j'ai remarqué que lorsque je clique avec la tablette sur une zone où il est permis d'écrire quelque chose (style moteur de recherche, ou recherche dans le menu, etc...) et bien le clavier se lance automatiquement ! J'ai fait pas mal de recherche hier et j'ai trouvé ce qu'il me faut ====> https://code.msdn.microsoft.com/wind...hId=1342120152

    Il propose gratuitement de le télécharger, c'est ce que j'ai fait, et il s'avère que ça fonctionne parfaitement sur ma tablette Windows !

    En revanche c'est du C#, lorsque j'ai voulu convertir son projet en vb.net.... je me prends pas mal d'erreur...

    Je vous montre :
    C#

    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
    using System.Windows;
    using System.Windows.Interop;
     
    namespace ModernWPF.Win8TouchKeyboard.Desktop
    {
        /// <summary>
        /// Interaction logic for MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
     
                // Disables inking in the WPF application and enables us to track touch events to properly trigger the touch keyboard
                InkInputHelper.DisableWPFTabletSupport();
     
                this.Loaded += MainWindow_Loaded;
            }
     
            private void MainWindow_Loaded(object sender, RoutedEventArgs e)
            {
                // Enables WPF to mark edit field as supporting text pattern (Automation Concept)
                System.Windows.Automation.AutomationElement asForm =
                    System.Windows.Automation.AutomationElement.FromHandle(new WindowInteropHelper(this).Handle);
     
                // Windows 8 API to enable touch keyboard to monitor for focus tracking in this WPF application
                InputPanelConfigurationLib.InputPanelConfiguration inputPanelConfig = new InputPanelConfigurationLib.InputPanelConfiguration();
                inputPanelConfig.EnableFocusTracking();
            }
        }
    }
    Mon code :
    VB.NET
    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
    ' To change this template use Tools | Options | Coding | Edit Standard Headers.
    '
    Imports System
    Imports System.Collections.Generic
    Imports System.Text
    Imports System.Windows
    Imports System.Windows.Controls
    Imports System.Windows.Data
    Imports System.Windows.Documents
    Imports System.Windows.Input
    Imports System.Windows.Media
    Imports System.Windows.Interop
     
    Namespace ModernWPF.Win8TouchKeyboard.Desktop
    ''' <summary>
    ''' Interaction logic for MainWindow.xaml
    ''' </summary>
    Public Partial Class MainWindow
    	Inherits Window
     
    	Public Sub New()
    		MyBase.New
    		'InitializeComponent()
    ' Disables inking in the WPF application and enables us to track touch events to properly trigger the touch keyboard
    		    InkInputHelper.DisableWPFTabletSupport
    		    Me.Loaded = (Me.Loaded + MainWindow_Loaded)
     
    	End Sub
    	Private Sub MainWindow_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
    		' Enables WPF to mark edit field as supporting text pattern (Automation Concept)
                Dim asForm As System.Windows.Automation.AutomationElement = System.Windows.Automation.AutomationElement.FromHandle((New WindowInteropHelper(Me) + Handle))
                ' Windows 8 API to enable touch keyboard to monitor for focus tracking in this WPF application
                Dim inputPanelConfig As InputPanelConfigurationLib.InputPanelConfiguration = New InputPanelConfigurationLib.InputPanelConfiguration
                inputPanelConfig.EnableFocusTracking
            End Sub
     
    End Class
     
    End Namespace
    InkInputHelper C# :

    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
    using System;
    using System.Reflection;
    using System.Windows.Input;
     
    namespace ModernWPF.Win8TouchKeyboard.Desktop
    {
        public static class InkInputHelper
        {
            public static void DisableWPFTabletSupport()
            {
                // Get a collection of the tablet devices for this window.  
                TabletDeviceCollection devices = System.Windows.Input.Tablet.TabletDevices;
     
                if (devices.Count > 0)
                {
                    // Get the Type of InputManager.
                    Type inputManagerType = typeof(System.Windows.Input.InputManager);
     
                    // Call the StylusLogic method on the InputManager.Current instance.
                    object stylusLogic = inputManagerType.InvokeMember("StylusLogic",
                                BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.NonPublic,
                                null, InputManager.Current, null);
     
                    if (stylusLogic != null)
                    {
                        //  Get the type of the stylusLogic returned from the call to StylusLogic.
                        Type stylusLogicType = stylusLogic.GetType();
     
                        // Loop until there are no more devices to remove.
                        while (devices.Count > 0)
                        {
                            // Remove the first tablet device in the devices collection.
                            stylusLogicType.InvokeMember("OnTabletRemoved",
                                    BindingFlags.InvokeMethod | BindingFlags.Instance | BindingFlags.NonPublic,
                                    null, stylusLogic, new object[] { (uint)0 });
                        }
                    }
                }
            }
        }
    }
    InkInputHelper vb.net :

    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
    ' To change this template use Tools | Options | Coding | Edit Standard Headers.
    '
    Imports System
    Imports System.Web.Mvc
    Imports System.Reflection
    Imports System.Windows.Input
    Namespace ModernWPF.Win8TouchKeyboard.Desktop
    Public Class InkInputHelper
     
     
     
            Public Shared Sub DisableWPFTabletSupport()
                ' Get a collection of the tablet devices for this window.  
                Dim devices As TabletDeviceCollection = System.Windows.Input.Tablet.TabletDevices
                If (devices.Count > 0) Then
                    ' Get the Type of InputManager.
                    Dim inputManagerType As Type = GetType(System.Windows.Input.InputManager)
                    ' Call the StylusLogic method on the InputManager.Current instance.
                    Dim stylusLogic As Object = inputManagerType.InvokeMember("StylusLogic", (BindingFlags.GetProperty  _
                                    Or (BindingFlags.Instance Or BindingFlags.NonPublic)), Nothing, InputManager.Current, Nothing)
                    If (Not (stylusLogic) Is Nothing) Then
                        '  Get the type of the stylusLogic returned from the call to StylusLogic.
                        Dim stylusLogicType As Type = stylusLogic.GetType
                        ' Loop until there are no more devices to remove.
     
                        While (devices.Count > 0)
                            ' Remove the first tablet device in the devices collection.
                            stylusLogicType.InvokeMember("OnTabletRemoved", (BindingFlags.InvokeMethod  _
                                            Or (BindingFlags.Instance Or BindingFlags.NonPublic)), Nothing, stylusLogic, New Object() {CType(0,UInteger)})
     
                        End While
     
                    End If
     
                End If
     
            End Sub
     
     
     
    End Class
    End Namespace
    Evidemment j'ai utilisé des convertisseurs C# to Vb.net sur le net puis j'ai modifié moi même ce que je connaissais.

    Il me reste 5 erreurs... par rapport à cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Loaded = (Me.Loaded + MainWindow_Loaded)
    et celle ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim asForm As System.Windows.Automation.AutomationElement = System.Windows.Automation.AutomationElement.FromHandle((New WindowInteropHelper(Me) + Handle))
    Nom : Erreurs_touch-keyboard.PNG
Affichages : 1665
Taille : 31,8 Ko

    Si quelqu'un pourrait m'aider svp

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    pour Me.Loaded = (Me.Loaded + MainWindow_Loaded) :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    this.Loaded += MainWindow_Loaded;
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    addhandler me.loaded, addressof MainWindow_Loaded


    pour Dim asForm As System.Windows.Automation.AutomationElement = System.Windows.Automation.AutomationElement.FromHandle((New WindowInteropHelper(Me) + Handle))

    je ne sais pas où il est aller chercher un +, sur le code c# c'est un point donc remplace par un . aussi
    => New WindowInteropHelper(Me).Handle
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    Merci @Pol63

    Ça fonctionne parfaitement !

    J'ai une petite question, lorsque que j'ai ce type de Warning :

    Il existe une différence entre l'architecture de processeur du projet en cours de génération "MSIL" et l'architecture de processeur de référence "System.Data", "AMD64". Cette différence peut entraîner des problèmes de runtime. Veuillez modifier l'architecture de processeur ciblée de votre projet à l'aide du gestionnaire de configuration de façon à aligner les architectures de processeur entre votre projet et les références, ou prendre une dépendance sur les références avec une architecture de processeur correspondant à l'architecture de processeur ciblée de votre projet. (MSB3270)
    et

    Il existe une différence entre l'architecture de processeur du projet en cours de génération "MSIL" et l'architecture de processeur de référence "PresentationCore", "AMD64". Cette différence peut entraîner des problèmes de runtime. Veuillez modifier l'architecture de processeur ciblée de votre projet à l'aide du gestionnaire de configuration de façon à aligner les architectures de processeur entre votre projet et les références, ou prendre une dépendance sur les références avec une architecture de processeur correspondant à l'architecture de processeur ciblée de votre projet. (MSB3270)
    qu'est ce que cela signifie ? et que faire pour régler ceci ??

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    clic droit / propriétés sur un projet
    ensuite tu cherches les paramètres de compilation

    il y a x86, x64 et anycpu
    x86 pour forcer l'exécution en 32 bits, x64 pour forcer en 64 bits et anycpu pour automatique selon la machine où c'est exécuté

    si tu as un exe dans un mode et une dll dans un autre ca peut causer des soucis si ca ne s'accorde pas (genre ca démarre pas)
    donc vérifier chaque projet et les références autre que le Framework .net qui est en anycpu
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    Merci beaucoup !

    Nom : anycpu.PNG
Affichages : 1659
Taille : 46,2 Ko

    Tout en haut je n'ai pas le choix,, par défaut la plateforme est sur AnyCPU et il est impossible de changer.

    Ensuite en bas où il est écrit "Target CPU" j'ai choisi x86-64 processor, j'ai choisi celui qui me donnait le moins de warning et parce que je pense cela représente les 2 types de processeurs, 64 et 32 (mon processeur est un 64bits).

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    oups je dis n'importe quoi parce qu'en fait j'ai mis 64bits processor mais impossible de compiler lol

    J'ai mis 32bits et ça fonctionne...

    Je pige rien à ces problèmes d'architectures mais merci quand ! Grand MERCI ;-)

    En fait le code fonctionnait parfaitement sur un projet secondaire (projet ou je fais tous mes tests etc...) En revanche lorsque je copie ce code et tout ce qui s'en suit donc mon projet principal.... j'ai une foutue erreur qui me dit :

    Impossible de convertir une valeur de type 'Dig.UserAccess' en 'System.Windows.Window'. (BC30311) - C:\Users\Ism\Desktop\Projet Dig\Dig\UserAccess.xaml.vb:70,153
    Je pige mais alors pas du tt...

    ID d’erreur : BC30311

    Je pense que c'est un probleme d'héritage j'ai copié mon programme dans un userControl or dans le programme original il est dans un mainWindow.

    Donc je verrai soit ce soir soit demain matin.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    le mieux reste de comprendre le code qu'on copie/colle et d'en comprendre le contexte, afin de l'adapter à ton contexte
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    Bonjour @Pol63

    Je suis totalement d'accord avec vous je vais me pencher sur le code afin de le comprendre !

    Merci en tous les cas pour les réponses.

    Alors maintenant j'en suis convaincu c'est bien un problème avec
    Inherits
    En fait dans le programme proposé c'est un héritage fenêtre
    Inherits Window
    en revanche dans mon programme c'est un héritage utilisateur contrôle
    Inherits UserControl
    Je dois donc modifier mon programme au niveau de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dim asForm As System.Windows.Automation.AutomationElement = System.Windows.Automation.AutomationElement.FromHandle((New WindowInteropHelper(Me).Handle))
    car c'est la partie en gras qui est signalée du moins le (Me) est souligné.

    Je ne sais pas ce que je dois faire exactement je suis actuellement sur le sujet je sais que c'est un problème d'héritage mais que faire pour le régler je n'en ai aucune idée ni piste...

    Si quelqu'un peut m'éclairer svp ?

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    Me représente ici ton instance de usercontrol, alors que la méthode demande un window (et dans le code d'origine Me représentait l'intance de window)
    il suffit de remplacer Me par le window parent de Me (donc demander à Google comment on trouve le parent window d'un usercontrol en wpf)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    Donc je viens de passer la demi-journée à chercher (ne vous moquez pas de moi si la solution est simple je suis nouveau en WPF/Vb.net).

    J'ai trouvé des choses mais pour être honnête avec vous ça reste encore très flou..

    Donc voilà ce que j'ai fait avec mon maître de stage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim asForm As System.Windows.Automation.AutomationElement = System.Windows.Automation.AutomationElement.FromHandle(New WindowInteropHelper(CType(Me.Parent, MainWindow)).Handle)
    Le projet se lance sur mon Pc en revanche il ne se lance pas sur la tablette Windows "le programme a cessé de fonctionner".

    Je tiens à signaler que je n'ai pas d'erreur dans mon programme ni warning donc je ne comprends pas du tout...

    Je viens de télécharger sharpdevelop 4.4.2 sur la tablette et j'y ai lancé mon programme.

    Alors j'ai une fenêtre qui s'ouvre qui s'appelle "Unhandled exception"
    Ensuite il est écrit
    An exception of type System InvalidCastExeption was thrown

  11. #11
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Par défaut
    InvalidCastException = erreur de conversion.

    Dans ton cas il parle d'une conversion d'un Grid en MainWindows. Après pour en savoir plus, il faudrait voir où est générée l'exception.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    .parent donne le parent qui peut être la window si le uc est posé sur la window mais ici il est posé sur un grid donc tu essayes de caster un grid en window
    C ca qui plante...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #13
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    Bonjour, Merci pour vos réponses !

    Oui donc là ça devient vraiment compliqué même si je crois avoir compris. Donc je résume :

    Donc ce que j'ai voulu faire c'est une conversion et apparemment une conversion d'un Grid en MainWindow ce qui est n'est pas bon, j'ai utilisé .Parent pour me donner la window pensant que mon UserControl était posé sur Window or il est posé sur un Grid... Donc le Parent de mon UserControl n'est pas Window !

    Donc quelles sont les solutions à ce problème ?

    1 - Déplacer mon code dans le mainwindow et faire un appel du mainwindow vers le usercontrol ? Comment ? Je n'en ai aucune idée...
    Je parle de ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	Private Sub UserAccess_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
    ' Enables WPF to mark edit field as supporting text pattern (Automation Concept)
                Dim asForm As System.Windows.Automation.AutomationElement = System.Windows.Automation.AutomationElement.FromHandle(New WindowInteropHelper(CType(Me.VisualParent, MainWindow)).Handle)
    ' Windows 8 API to enable touch keyboard to monitor for focus tracking in this WPF application
                Dim inputPanelConfig As InputPanelConfigurationLib.InputPanelConfiguration = New InputPanelConfigurationLib.InputPanelConfiguration
                inputPanelConfig.EnableFocusTracking
        End Sub
    Avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		InkInputHelper.DisableWPFTabletSupport
    		AddHandler Me.Loaded, AddressOf UserAccess_Loaded
    2 - Poser le usercontrol sur la window ? comment ? pareil aucune idée
    3 - je n'en ai mais alors aucune idée !! Je sèche totalement

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    la bonne réponse était surement
    "si c'est le grid qui est sur le window, c'est le parent du grid qu'il me faut, soit me.parent.parent, qui lui pourra être casté en window "
    (idéalement une boucle pour remonter jusqu'au parent de plus haut niveau, mais dans un premier temps tu peux tester me.parent.parent)

    mais la réponse 1 est peut-être meilleure, il faut être dans le contexte pour le savoir, si tu es débutant tu n'auras la réponse que dans quelques mois, donc autant essayer simple avec .parent.parent


    au passage conversion c'est transformer d'un type à un autre (genre int vers decimal), et caster c'est inférer le type d'une variable vers l'un de ses autres types composants (wow cette phrase n'a aucun sens ^^)
    je retente en plus clair, caster le plus couramment c'est quand on connaît le type réel d'une chose contenu dans un type différent
    en effet tu peux écrire dim a as object = new button, a est une variable de type objet, qui contient un bouton (héritage), par contre si tu tapes a. il ne va rien te proposer alors qu'en tapant directcast(a,button) tu auras accès aux membres, car tu sais et tu précises que a est un button
    dans le sens inverse c'est souvent obligatoire, par exemple le type du parent d'un usercontrol peut etre n'importe quel type de contrôle (y compris window) donc c'est normal d'être obligé de caster sur le type de plus haut niveau
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  15. #15
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    C'est bon j'ai trouvé du moins ça fonctionne pour l'instant.

    J'ai tout simplement tout déplacé dans mon mainwindow haha voilà tout !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    1
    2
    		InkInputHelper.DisableWPFTabletSupport
    		AddHandler Me.Loaded, AddressOf UserAccess_Loaded
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	Private Sub UserAccess_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
    ' Enables WPF to mark edit field as supporting text pattern (Automation Concept)
                Dim asForm As System.Windows.Automation.AutomationElement = System.Windows.Automation.AutomationElement.FromHandle(New WindowInteropHelper((Me)).Handle)
    ' Windows 8 API to enable touch keyboard to monitor for focus tracking in this WPF application
                Dim inputPanelConfig As InputPanelConfigurationLib.InputPanelConfiguration = New InputPanelConfigurationLib.InputPanelConfiguration
                inputPanelConfig.EnableFocusTracking
        End Sub
    J'ai supprimé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (CType(Me.Parent, MainWindow)).Handle)
    pour remettre
    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Edit :

    mais la réponse 1 est peut-être meilleure
    Oui je confirme c'est la bonne réponse ! (du moins pour mon niveau qui s'élève a 1 mois...)

    tu peux tester me.parent.parent
    Ok je test quand mm cette méthode histoire de voir ce que ça donne.

    au passage conversion c'est transformer d'un type à un autre (genre int vers decimal), et caster c'est inférer le type d'une variable vers l'un de ses autres types composants (wow cette phrase n'a aucun sens ^^)
    Effectivement pas si simple haha

    je retente en plus clair, caster le plus couramment c'est quand on connaît le type réel d'une chose contenu dans un type différent
    en effet tu peux écrire dim a as object = new button, a est une variable de type objet, qui contient un bouton (héritage), par contre si tu tapes a. il ne va rien te proposer alors qu'en tapant directcast(a,button) tu auras accès aux membres, car tu sais et tu précises que a est un button
    dans le sens inverse c'est souvent obligatoire, par exemple le type du parent d'un usercontrol peut etre n'importe quel type de contrôle (y compris window) donc c'est normal d'être obligé de caster sur le type de plus haut niveau
    Merci beaucoup c'est un peu plus clair ! Bon c'est pas top non plus (ta réponse est complète ne t'en fait pas ! c'est moi qui est des difficultés donc j'ai dû relire plusieurs fois pour assimiler étant donné mon niveau)

  16. #16
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    Bonjour,

    J'ai trouvé une autre méthode pour convertir du C# en .net ou inversement, pour ceux qui sont intéressés.

    Il faut utiliser Sharpdevelop, puis aller dans l'onglet "Tools", puis "convert code to" et après choisir le type de langage souhaité.

    C'est très simple.

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

Discussions similaires

  1. Comment convertir un projet en .exe (finaliser) ?
    Par zakzak2804 dans le forum Débuter
    Réponses: 3
    Dernier message: 18/05/2008, 11h52
  2. Réponses: 2
    Dernier message: 30/04/2008, 08h20
  3. Réponses: 3
    Dernier message: 23/11/2007, 09h12
  4. Comment convertir un projet winform en webform ?
    Par shako95 dans le forum ASP.NET
    Réponses: 10
    Dernier message: 30/10/2006, 10h02
  5. Comment convertir mon code ASP et ASP.Net ?
    Par yushkoya dans le forum ASP.NET
    Réponses: 3
    Dernier message: 25/07/2006, 17h24

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