none
erreur de compilation d'un projet VB converti

    Question

  • Bonjour,
    J'ai besoin de l'interface graphique:
    - pour préparer les données au programme C
     - puis pour visualiser le résultat (fichiers textes) venant du programme C.

    Concernant l'interface VB, j'ai un ami qui a fait cette interface en VB 6.0 pour le même travail que moi. Or lorsque je l'ouvre cette interface avec visual studio 2008 alors il me demande de cliquer sur convertir. je clique sur convertir puis il me demande d'enregistrer dans un emplacement.
    ceci se passe bien.
    J'ouvre le nouveau projet converti alors je trouve ce que j'ai besoin les interfaces, le code bien fait.
    Mais lorsque je lance la compilation
    J'ai le même erreur qui ce répète dans tous les "forms" c'est à dire les fenêtres de travail.
    Cet erreur est:

    C:\20-04-08\20-04-08\ProjetData.NET\choix_attribut_select.vb(59) :
    error BC32022: 'Public Event Load(sender As Object, e As
    System.EventArgs)' est un événement. Il ne peut donc pas être appelé
    directement. Utilisez une instruction 'RaiseEvent' pour déclencher un événement.

    Comment on fait une propre conversion de projet VB 6 en vb.net ?

    comment utiliser RaiseEvent ?

    S'il vous plait, Comment cet erreur va être corriger ?


    J'ai vu cette solution:
    Apparemment , il faut rajouter 'Event' : LoadEvent au lieu de Load
    comme décrit dans ce lien :

    http://msmvps.com/blogs/kenlin/archive/2007/01/31/convert-if-someevent-null-into-vb.aspx

    J'ai remplacé Load(nom de la Form) par LoadEvent(nom de la Form).
    Je compile et j'ai ce message d'erreur:

    error BC30451: Le nom 'LoadEvent' n'est pas déclaré.

    J'ai besoin de vos aides.


    Merci.
    Monday, September 14, 2009 10:45 AM

Answers

  • Salut,

    tu dois faire un code similaire à ceci:

    ' Déclaration de la form        
    Dim myForm As attribut_where
    



    ' Initialisation de la form (équivalent au Load) myForm = New attribut_where
    ' Traitement quelconque entre le chargement et l'affichage de la form
    ' ...
    ' ... ' Affichage de la form myForm.ShowDialog()
    Si tu ne veux qu'afficher la form, sans un préchargement:

    ' Affichage de la form
    attribut_where.ShowDialog()
    

    Microsoft MVP C# :: mongeon.devrpm.ca
    Tuesday, September 22, 2009 1:18 PM
    Moderator

All replies

  • Bonjour,

    Est-il possible que vous puissiez nous afficher le code qui pose problème ?

    Cordialement
    Gilles TOURREAU - MVP C# - Architecte .NET/Consultant/Formateur
    Monday, September 14, 2009 7:27 PM
    Moderator
  • Bonjour,

    J'ai converti le projet vb6 en vb.net en utilisant l'assistant de conversion .
    Je lance la compilation et j'obtiens des erreurs.

    J'ai le même erreur qui ce répète dans tous les "forms".
    Cet erreur est:

    C:\testo\choix_attribut_select.vb(59) : error BC32022: 'Public Event Load(sender As Object, e As System.EventArgs)' est un événement. Il ne peut donc pas être appelé directement. Utilisez une instruction 'RaiseEvent' pour déclencher un événement.

    L'erreur est pointé sur l'instruction de code au dessus :
    Load(attribut_where)

    Voici le code complet d'une Form où il y a l'erreur:
    Option Strict Off
    Option Explicit On
    Friend Class attribut_select
    	Inherits System.Windows.Forms.Form
    	Private Sub Check1_Click()
    		
    	End Sub
    	
    	Private Sub attribut_select_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
    		Dim cnx As ADODB.Connection
    		Dim rst As ADODB.Recordset
    		cnx = New ADODB.Connection
    		rst = New ADODB.Recordset
    		Dim cmd As ADODB.Command
    		Dim param As ADODB.Parameter
    		cmd = New ADODB.Command
    		param = New ADODB.Parameter
    		
    		cnx.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" & "SERVER=127.0.0.1;" & "DATABASE=base_donnee;" & "UID=root;" & "PWD=;"
    		cnx.Open()
    		rst.Open("show columns from " & nom_table & "", cnx)
    		attribut(0).Visible = False
    		Dim j As Integer
    		
    		'creation de 2 boutons en plus du premier crée manuellement
    		'For j = 1 To 2
    		j = 1
    		'While (j <= 2)
    		While Not (rst.EOF)
    			Me.attribut.Load(j)
    			Me.attribut(j).Left = VB6.TwipsToPixelsX(Me.attribut(j - 1).Left)
    			Me.attribut(j).Top = VB6.TwipsToPixelsY(VB6.PixelsToTwipsY(Me.attribut(j - 1).Top) + 500)
    			'attribut_select.attribut(j).Caption = "attribut(" & Trim(CStr(j)) & ") crée par INDEX" 'suppression des espaces pour le nom
    			Me.attribut(j).Text = rst.Fields(0).Value
    			Me.attribut(j).Visible = True
    			'Next j
    			j = j + 1
    			rst.MoveNext()
    		End While
    		nombre_attribut_select = j - 1
    	End Sub
    	
    	Private Sub valider_attribut_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles valider_attribut.Click
    		Dim j As Short
    		Dim p As Short
    		
    		For j = 1 To nombre_attribut_select
    			If Me.attribut(j).CheckState = 1 Then
    				attribut_select_selectionne(p) = Me.attribut(j).Text
    				p = p + 1
    			End If
    		Next j
    		If p = 0 Then
    			MsgBox("Vous devez sélectionner au moins un attribut")
    		Else
    			nombre_attribut_select_selectionne = p
    			Me.Close()
    			'UPGRADE_ISSUE: L'instruction Load n'est pas pris(e) en charge. Cliquez ici : 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="B530EFF2-3132-48F8-B8BC-D88AF543D321"'
    			Load(attribut_where)
    			attribut_where.ShowDialog()
    		End If
    		
    	End Sub
    End Class
    Thursday, September 17, 2009 6:53 AM
  • Bonjour,

    Que pensez vous de ce code ?

    Merci.
    Monday, September 21, 2009 2:20 PM
  • Salut,

    es-ce que tu es allé voir le lien suggérer dans le commentaire? Le problème est que l'évènement Load n'est plus pris en charge en .Net. Tu peux cependant utiliser le mot clé new ou vériifer le lien pour voir s'il suggère quelque chose.
    Microsoft MVP C# :: mongeon.devrpm.ca
    Monday, September 21, 2009 3:44 PM
    Moderator
  • Ce lien en commentaire ne marche pas.

    ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="B530EFF2-3132-48F8-B8BC-D88AF543D321
    
    Comment utiliser le mot clé new et à quoi sert ?
    Monday, September 21, 2009 9:38 PM
  • Salut,

    tu dois faire un code similaire à ceci:

    ' Déclaration de la form        
    Dim myForm As attribut_where
    



    ' Initialisation de la form (équivalent au Load) myForm = New attribut_where
    ' Traitement quelconque entre le chargement et l'affichage de la form
    ' ...
    ' ... ' Affichage de la form myForm.ShowDialog()
    Si tu ne veux qu'afficher la form, sans un préchargement:

    ' Affichage de la form
    attribut_where.ShowDialog()
    

    Microsoft MVP C# :: mongeon.devrpm.ca
    Tuesday, September 22, 2009 1:18 PM
    Moderator
  • Bonjour,

    - Pourquoi vous affichez deux fois la forme 'attribut_where' ?

    - su je voulais que la fenêtre précédente se ferme alors on utilise 'ShowDialog' ?

    Merci.

    Thursday, October 08, 2009 7:48 AM
  • Bonjour,

    Je souhaite que vous m'aidez.

    Merci.
    Friday, October 16, 2009 2:27 PM
  • Bonsoir,

    J'ai installé Visual Studio 2008.
    Je voulais ouvrir un projet VB6 alors l'assistance de conversion s'arrête et il me demande d'installer le le visual basic 6 avec toutes ces composantes.

    Pourquoi?

    Est ce que le syntaxe d- e deux ne sont pas compatible ? Est ce que la version 2008 ne supporte pas la version 2005 ?
    Sunday, October 18, 2009 9:54 PM