[VB.Net 2005] cast string vers objet

Résolu
swan94 Messages postés 254 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 2 avril 2010 - 27 juil. 2006 à 10:11
swan94 Messages postés 254 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 2 avril 2010 - 27 juil. 2006 à 12:59
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

cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
27 juil. 2006 à 12:39
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.
__________________

@+  
3
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
27 juil. 2006 à 10:30
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!!
0
swan94 Messages postés 254 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 2 avril 2010
27 juil. 2006 à 10:37
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
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
27 juil. 2006 à 10:42
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

__________________
@+  
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
27 juil. 2006 à 10:55
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

++
0
swan94 Messages postés 254 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 2 avril 2010
27 juil. 2006 à 10:57
excuses moi mais c'est pas le textbox mais une variable telle que : "me." & textbox1.text


merci
Swan94
0
swan94 Messages postés 254 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 2 avril 2010
27 juil. 2006 à 11:13
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
0
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
27 juil. 2006 à 11:17
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

++
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
27 juil. 2006 à 11:19
Essaye ça :  

Me

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

@+  
0
swan94 Messages postés 254 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 2 avril 2010
27 juil. 2006 à 11:25
non il ne veut pas


snif...

Swan94
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
27 juil. 2006 à 11:27
Qu'est-ce qu'il te dit? Ca plante?

__________________

@+  
0
swan94 Messages postés 254 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 2 avril 2010
27 juil. 2006 à 11:46
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
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
27 juil. 2006 à 11:50
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)

__________________

@+  
0
swan94 Messages postés 254 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 2 avril 2010
27 juil. 2006 à 11:54
il ose maintenant me dire que l'index se trouve en dehors des limites du tableau. en messsage d'erreur.

Swan94
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
27 juil. 2006 à 12:00
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?


__________________

@+  
0
swan94 Messages postés 254 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 2 avril 2010
27 juil. 2006 à 12:21
en effet avec le .name ca marche mais avec le texte j'y arrive pas


STP aide moi j'en peut plus.






Swan94
0
romagny13 Messages postés 687 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 août 2014 3
27 juil. 2006 à 12:29
mdrrrrrrrrrr
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
27 juil. 2006 à 12:29
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.

__________________

@+  
0
swan94 Messages postés 254 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 2 avril 2010
27 juil. 2006 à 12:31
imagines :


 groupbox.name = "toto"


textbox1.text = "toto"


c'est pas bon ?




Swan94
0
swan94 Messages postés 254 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 2 avril 2010
27 juil. 2006 à 12:59
Sérieusement un GRAND merci à toi tu m'as sauvé.

Swan94
0