Pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter, inscrivez-vous gratuitement !

 

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    juin 2007
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2007
    Messages : 344
    Points : 124
    Points
    124

    Par défaut Pourquoi une List(Of..) bien que déclarée Public dans un module n'est plus visible dans Form1.vb

    Bonjour à tous
    J'ai un problème avec une List(Of...) que je rempli dans Module1.vb est déclarée Nothing dans Form1.vb
    Pourtant elle est déclarée Public dans Module1
    J'ai codé un tout petit programme avec ces éléments pour simplifier la mise au point
    Voici le code de Module1.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
     
    Imports System.Collections.Generic
    Module Module1
        Public MaListe As List(Of Integer)
        Public i, B As Integer
     
       Public Sub Main()
            Dim MaListe As New List(Of Integer)
            For i = 0 To 10
                MaListe.Add(i)
            Next
            B = MaListe(5)
            Form1.ShowDialog()
        End Sub
     
    End Module
    Et celui de Form1.vb

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Imports System.Collections.Generic
    Public Class Form1
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Dim A As Integer
            A = MaListe(2)
        End Sub
    End Class

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    avril 2007
    Messages
    13 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : avril 2007
    Messages : 13 180
    Points : 24 055
    Points
    24 055

    Par défaut

    tu as vérifié que tu passes dans cette sub main ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    juin 2007
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2007
    Messages : 344
    Points : 124
    Points
    124

    Par défaut

    Merci
    Le programme passe bien dans le Main.
    Vérifié avec des points d'arrêt

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    avril 2007
    Messages
    13 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : avril 2007
    Messages : 13 180
    Points : 24 055
    Points
    24 055

    Par défaut

    j'avais mal lu le code, tu as écris Dim MaListe
    Dim sert à déclarer une nouvelle variable, et il est possible de déclarer une variable dans un membre qui a le même nom qu'un membre de classe mais qui sont différentes, donc il te suffit d'enlever le dim pour cibler la bonne
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    mars 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations forums :
    Inscription : mars 2011
    Messages : 74
    Points : 92
    Points
    92

    Par défaut

    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim MaListe As New List(Of Integer)
    Dans la sub, tu définis un autre "MaListe" local à la sub.

    soit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Module Module1
        Public MaListe As New List(Of Integer)
    et pas de redefinition dans la sub

    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Module Module1
        Public MaListe As List(Of Integer)
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub Main()
            MaListe = New List(Of Integer)
            For i = 0 To 10
    EDIT: coiffé au poteau

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    juin 2007
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2007
    Messages : 344
    Points : 124
    Points
    124

    Par défaut

    Merci beaucoup baloub
    La 1ère solution n'a pas fonctionné, mais la deuxième fonctionne très bien

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

Discussions similaires

  1. variable non transmise bien que déclarée en global
    Par laurentSc dans le forum Débuter
    Réponses: 6
    Dernier message: 23/04/2016, 10h45
  2. Réponses: 2
    Dernier message: 29/05/2009, 10h16
  3. Réponses: 2
    Dernier message: 27/07/2007, 16h37
  4. [décalage d'une liste] Cherche mieux que l'algo naïf
    Par tom42 dans le forum Algorithmes et structures de données
    Réponses: 20
    Dernier message: 31/03/2007, 15h51
  5. [XSD] Pourquoi une URL en tant que XML NameSpace ?
    Par Bayard dans le forum Valider
    Réponses: 2
    Dernier message: 11/12/2006, 11h06

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