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] Obtenir un objet à partir de son nom


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 259
    Points : 97
    Points
    97
    Par défaut [VB.NET] Obtenir un objet à partir de son nom
    Bonjour,

    Est-il possible d'obtenir un objet à partir de son nom ?
    Je m'explique :

    Dans une winform, j'ai des menuItems (par exemple menuItem1).

    Et je voudrais qu'à partir d'une string qui contient menuItem1, j'accède vraiment à cet objet. Un peu comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim SmenuItem As String = "menuItem1"
    CType(SmenuItem, menuItem).Visible = False
    Mais bien sûr, ca ne fonctionne pas.
    Avez-vous une idée ?

    Je vois cette solution mais je voudrais éviter la boucle qui prendrait trop de temps (et surtout connaitre une vraie solution) :
    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
            Private Function CObj(ByVal Name As String) As Object
     
            Dim frm As Form, Ctrl As Control
     
            For Each frm In Forms
                If frm.Name = Name Then
                   Set CObj = frm
                    Exit Function
                End If
                For Each Ctrl In frm.Controls
                    If Ctrl.Name = Name Then
                      Set CObj = Ctrl
                        Exit Function
                    End If
                Next Ctrl
            Next frm
     
        End Function
    Edit : cette solution ne fonctionne pas.

    Merci d'avance.

  2. #2
    Membre expérimenté Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Points : 1 443
    Points
    1 443
    Par défaut
    peut-etre ça pourrait t'aider...

    http://emerica.developpez.com/dotnet...uction/csharp/
    il vaut mieux prendre son pied que de se prendre la tête!!

    http://bossun.noxblog.com

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Points : 140
    Points
    140
    Par défaut
    Il suffit de faire un dictionnaire qui contiens tes objets avec comme clé ta chaine string.

    du coup tu pourra faire : monDictionnaire(maChaineDeCaractere).maMethode

  4. #4
    Membre habitué Avatar de Capitaine Kirk
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations forums :
    Inscription : Mars 2005
    Messages : 98
    Points : 128
    Points
    128
    Par défaut
    Bonjour

    je ne sais pas si j'ai tout capter bart64 mais je te propose ce code qui rend inaccessible (grisé) le sous menu Nouveau du menu Fichier code que tu retrouvera dans la pièce jointe.

    Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Imports System.Windows.Forms
    Imports System
    Public Class Form1
     
        Private Sub Form1_Load(ByVal sender As System.Object, _
                                ByVal e As System.EventArgs) Handles MyBase.Load
            Dim TstripD As ToolStripMenuItem
            TstripD = CType(Me.MenuStrip1.Items(0), ToolStripMenuItem)
            TstripD.DropDownItems.Item(0).Enabled = False
        End Sub
    End Class

    Capitaine Kirk.
    Fichiers attachés Fichiers attachés
    Capitaine Kirk.

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/04/2009, 18h09
  2. [IL]Instancier un objet à partir de son nom de classe
    Par neo.51 dans le forum Framework .NET
    Réponses: 2
    Dernier message: 08/08/2007, 11h43
  3. Obtenir un Thread à partir de son nom
    Par al3alwa dans le forum Concurrence et multi-thread
    Réponses: 10
    Dernier message: 14/06/2007, 13h54
  4. Réponses: 6
    Dernier message: 25/09/2006, 14h51
  5. Réponses: 3
    Dernier message: 12/07/2006, 16h33

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