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 Forms Discussion :

[VB.NET]Accéder à différentes instances d'une classe


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 12
    Points : 9
    Points
    9
    Par défaut [VB.NET]Accéder à différentes instances d'une classe
    Bonjour,
    Je suis en train de me faire un petit éditeur de texte sous VB.net (VS 2005). Comme je voudrais pouvoir ouvrir plusieurs fichiers dans la fenêtre principale j’ai, sur cette fenêtre, créé un TabControl auquel je rajoute un TabPage pour chaque nouvel onglet. Sur chacun de ces TabPage, j’ai voulu mettre une TextBox. J’ai commencé par mettre ceci dans les déclarations : Dim WithEvents newfichier As New TextBox. Puis, j’ai voulu rajouter ce newfichier sur chacun des mes TabPage. Ça ne fonctionne pas, chaque nouveau TabPage vole newfichier au TabPage précédent : je n’ai qu’un newfichier qui passe d’un TabPage au suivant. J’ai donc été obligé de construire une classe « UnFichier » qui hérite de TextBox que j’initialise et que je peux ainsi placer pour chaque TabPage. Cette fois-ci ça fonctionne, j’ai autant de TextBox de TabControl. Mais il reste un gros problème, je perds ainsi l’accès à chaque instance de « UnFichier ». Je m’explique, si je veux lancer à partir d’un menu une action, coller par exemple, il faut que j’indique à la fonction rattaché au menu sur quelle TextBox travailler, je peux bien lui indiquer sur quel TabPage travailler mais les TextBox n’ont ni nom ni numéro…

    Je ne sais pas du tout si ce que je raconte est clair pour quelqu’un. Si c’est le cas, voyez-vous une solution ? Soit en se passant de la création de la classe « UnFichier », soit avec un moyen pour accéder à une instance de « UnFichier » quand le code ne fait pas parti de la classe.

    Merci.


    CCC

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Points : 357
    Points
    357
    Par défaut
    Une solution serait de travailler avec les évènements :

    Si je comprends bien tu as un "fichier" par TabPage, donc il faut que tu récupère le tabPage approprié pour pouvoir appliquer ton coller à l'objet "fichier".

    Désires-tu plus de précision?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 480
    Points : 357
    Points
    357
    Par défaut
    Voici un exemple de ce que je t'expliquais plus haut :

    Public Event eComboListDateLostFocus(ByVal _monControle As monControle)
    Private Sub ComboBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.LostFocus
    If Not Me.ComboBox1.Text = "" Then
    RaiseEvent eComboListDateLostFocus(Me)
    End If
    End Sub

    Il te suffit donc de renvoyer un évènement qui retourne l'instance de ton objet, ensuite dans la classe qui effectue ton traitement tu récupère cet évènement.

    Lorsque tu construits ton objet tu lui ajoute un handler ainsi :

    monControleParent.Add(monControle)
    AddHandler monControle.eComboListDateLostFocus, AddressOf Me.mChequesDifferes_eComboListDateLostFocus

    ensuite tu gère ton évènement dans la méthode :

    Public Sub mChequesDifferes_eComboListDateLostFocus(ByVal monControle As monControle)
    Dim index As Integer = monControleParent.IndexOf(monControle)
    End Sub

    Comprends tu le principe?

Discussions similaires

  1. Accéder au trait d'une classe via son instance
    Par oodini dans le forum Langage
    Réponses: 6
    Dernier message: 15/04/2012, 20h47
  2. Réponses: 4
    Dernier message: 10/12/2009, 19h25
  3. Accéder à toutes les instances d'une classe
    Par MrGecko dans le forum Delphi
    Réponses: 15
    Dernier message: 14/05/2007, 00h50
  4. [VB.NET] Parcourir les attributs d'une classe
    Par pasqwal dans le forum Windows Forms
    Réponses: 3
    Dernier message: 15/02/2005, 09h47
  5. Réponses: 6
    Dernier message: 06/12/2004, 22h18

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