locked
Comment coder dans le sub New de Form1.vb, déjà créé par le concepteur dans Form1.Designer.vb ? RRS feed

  • Question

  • Bonjour,

    Tout est dans le titre... Voici quelques précisions:

    Mon code Vb2008 provient d'une mise à niveau Vb6.
    Le Form1 dont il est question est le Splashscreen de l'application.

    Après mise à niveau automatique par VS2K8, la méthode New dans le fichier Form1.vb apparait grisée dans la liste des méthodes.
    Lorsque je clique dessus, ça me redirige automatiquement vers la méthode New de la classe partielle du fichier Form1.Designer.vb:


    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> Partial Class SUAccueil
    #Region "Code généré par le Concepteur Windows Form "
        <System.Diagnostics.DebuggerNonUserCode()> Public Sub New()
            MyBase.New()
            'Cet appel est requis par le Concepteur Windows Form.
            InitializeComponent()
        End Sub
    	'Form remplace la méthode Dispose pour nettoyer la liste des composants.
    	<System.Diagnostics.DebuggerNonUserCode()> Protected Overloads Overrides Sub Dispose(ByVal Disposing As Boolean)
            If Disposing Then
                If Not components Is Nothing Then
                    components.Dispose()
                End If
            End If
    		MyBase.Dispose(Disposing)
    	End Sub

    (...)

    Le problème c'est que j'ai du code dans le Fom1.Load qui génère une erreur, alors que l'erreur disparait quand la même ligne est codée dans la méthode New du Form1.vb d'un projet (je l'ai testé sur une maquette).

    Voici la ligne de code qui provoque l'erreur:

            Me.imgLogo_.BackgroundImage = Microsoft.VisualBasic.Compatibility.VB6.Support.IPictureToImage(clsRes.SULoadResBitmap("TOTO"))
    

    L'erreur est la suivante: "Utilisez le mot clé New pour créer l'instance".
    clsRes est une classe Vb6 propriétaire déclarée publique dans un module: Public clsRes As SURessources.SURes

    Je me répète mais j'insiste sur le fait qu'il n'y a pas d'erreur quand la ligne de code est placée dans la méthode New du formulaire Form1.vb de ma maquette.

    COMMENT FAIRE pour avoir accès à la procédure New dans mon projet alors que Vb2008 a décidé de la griser ???

    Sauf erreur de ma part, nous ne sommes pas censés toucher au code du concepteur dans le fichier Form1.Designer.vb... non ?

    Merci d'avance à ceux qui prendront le temps de me lire,

    Projet volumineux en cours de migration de Vb6 à VbNet2008 Visual Studio 2008 - VbNET/Vb6(COM)
    lundi 21 septembre 2009 14:48

Réponses

  • Bonjour,

    Désolé si ma question était un peu confuse (plusieures erreurs s'entre-mélaient).
    Je l'ai reformulée autrement quelques jours plus tard dans la section Visual Basic dans mon post intitulé "La méthode Form1.New() me redirige automatiquement vers son homologue dans Form1.Designer.vb".

    Voici la réponse à "COMMENT FAIRE pour avoir accès à la procédure New":
    Quand suite à une mise à niveau Vb6 vers VbNet, la méthode New apparaît grisée et redirige vers son homologue dans Form1.Designer.vb, il suffit de déplacer la Public Sub New() depuis Form1.Designer.vb dans Form1.vb (en supprimant l'attribut System.Diagnostics.DebuggerNonUserCode) pour pouvoir y coder à nouveau librement.

    Merci à Gilles TOURREAU pour avoir donné la solution.

    Projet volumineux en cours de migration de Vb6 à VbNet2008 Visual Studio 2008 - VbNET/Vb6(COM)
    • Proposé comme réponse nikho vendredi 2 octobre 2009 06:58
    • Marqué comme réponse Golard lundi 5 octobre 2009 07:13
    mardi 29 septembre 2009 07:35