[VB.Net 2005] cast string vers objet

Résolu
Signaler
Messages postés
254
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
2 avril 2010
-
Messages postés
254
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
2 avril 2010
-
salut à tous


 


Est il possible de transformer un string en objet.


Je m'explique dans une variable je stocke par exemple "me.textbox1"


et j'aurai besoin de réutiliser cette variable en tant qu'objet.

Swan94

20 réponses

Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Si tu veux récupérer ton groupebox, ça doit marcher. Chez moi ça fonctionne trés bien.

J'ai un bouton, un groupbox (de name toto) et un textbox (avec toto pour text) sur mon formulaire. Sur le click du bouton :

Private

Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click
Dim

tb As Windows.Forms.Control = Me.Controls.Find(TextBox1.Text, True)(0)

tb.Visible =
False

End
SubCa marche!!!! Je ne vois pas ce qui peut poser problème.
__________________

@+  
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Salut,


si tu as besoin de passer une  variable de type Object dans une méthode en paramètre, tu peux lui passer une variable string ça ne pose pas de problème!!
Messages postés
254
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
2 avril 2010

salut à toi


non il me refuse et me met comme message : impossible d'effectuer un cast de type 'system.string' en type 'system.Windows.form.control'.


Merci de ton aide.

Swan94
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Ah, quand tu dis objet, j'avais compris une variable de type Object.... désolé, j'avais mal compris.


Si tu veux stocker ton TextBox dans une variable en tant qu'objet, il faut que ta variable soit du type que tu veux stocker.



Dim



tb

As
Windows.Forms.Control =

Me
.TextBox1

__________________
@+  
Messages postés
687
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
27 août 2014
3
tu peux essayer

CType(me.textbox1,object)

quoique c'est bizarre qd mm la manoeuvre que tu veux effectuer
parce que logiquement ca a assez peu d'interet de recuperer l'ensemble des propriété de la textbox mieux vo cibler la propriété dont tu as besoin

++
Messages postés
254
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
2 avril 2010

excuses moi mais c'est pas le textbox mais une variable telle que : "me." & textbox1.text


merci
Swan94
Messages postés
254
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
2 avril 2010

en fait j'ai créé des controles (groupbox) dynamiquement  et il me faut maintenant y acceder. J'ai le nom dans un textbox et je veux que le controle créé puisse effectuer une action (clignoter) à un moment précis. Voilà pourquoi j'en ai besoin.

merci pour votre aide

Swan94
Messages postés
687
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
27 août 2014
3
non mais tu as du tout simplement de preciser une propriété a la fin

ex (jimagine)
(me remplacant  form en cours)

Me.text=me.textbox1.text

enfin un truc de ce style cible exactement quest ce que tu veux recuperer de ta textbox (logiquement la propriete text)

et a quelle propriete de quel control tu vas l'affecter

++
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Essaye ça :  

Me

.Controls.Find(TextBox1.Text,
True)
tu devrais récupérer ton objet.
__________________

@+  
Messages postés
254
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
2 avril 2010

non il ne veut pas


snif...

Swan94
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Qu'est-ce qu'il te dit? Ca plante?

__________________

@+  
Messages postés
254
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
2 avril 2010

non message d'erreur :


impossible d'effectuer un cast d'un objet de type 'system.windows.forms.control[]' en type 'system.windows.forms.control'

Swan94
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Ah oui, c'est normal, car le find te renvoie une liste de contrôle. Tu dois donc spécifier lequel tu veux. Il ne doit y en avoir qu'un.

Donc Dim

tb
As Windows.Forms.Control =
Me.Controls.Find(TextBox1.Name,
True)(0)

__________________

@+  
Messages postés
254
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
2 avril 2010

il ose maintenant me dire que l'index se trouve en dehors des limites du tableau. en messsage d'erreur.

Swan94
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
J'ai mis TextBox1.Name dans le code, mais toi tu dois mettre textbox1.Text, c'était pour faire le test chez moi......


En tous cas ton message d'erreur veut dire qu'il ne l'a pas trouvé. Es-tu certain que textbox1.Text contient bien le Name du contrôle que tu veux récupérer?


__________________

@+  
Messages postés
254
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
2 avril 2010

en effet avec le .name ca marche mais avec le texte j'y arrive pas


STP aide moi j'en peut plus.






Swan94
Messages postés
687
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
27 août 2014
3
mdrrrrrrrrrr
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Statut
Membre
Dernière intervention
15 septembre 2009
4
Quelle est la valeur de textbox1.Text?

Il faut que ce soit la même que le propriété Name du contrôle que tu recherches.
La méthode Find te permet de trouver un contrôle (grâce à son nom) dans le formulaire.

__________________

@+  
Messages postés
254
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
2 avril 2010

imagines :


 groupbox.name = "toto"


textbox1.text = "toto"


c'est pas bon ?




Swan94
Messages postés
254
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
2 avril 2010

Sérieusement un GRAND merci à toi tu m'as sauvé.

Swan94