Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Adresser un objet dont lenomest construit dynamiquement

5 réponses
Avatar
B#
Bonjour a tous,

Comment puis-je faire pour me servir d'un objet (existant) en construisant
son nom dynamiquement dans un string ?

Dans un formulaire, j'ai une centaire de textbox dont le nom se termine par
un N°, et je souhaiterai me servir de certaines d'entre elles en fonction du
N° saisi par l'utilisateur. Par exemple,si l'utilisateur saisie un "3", je
souhaiterais pouvoir effectuer des calculs en récupérant le contenu des
textbox Ca3,Pb3,Ag3,etc.

merci par avance,

C#

5 réponses

Avatar
Patrick Philippot
Bonjour,

Comment puis-je faire pour me servir d'un objet (existant) en
construisant son nom dynamiquement dans un string ?



Pour créer une instance d'une classe à partir du nom d'assemblage et du nom
de classe sous forme de chaîne de caractères, utilisez
System.Activator.CreateInstance.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
B#..
Merci de votre réponse.
Mon problème n'est pas de créer l'instance mais d'utiliser une instance
existante : Les textbox sont déjà instanciées et je souhaite les utiliser en
construisant leur nom dynamiquement dans le code.

Merci d'avance,

B#


"Patrick Philippot" a écrit dans le
message de news:
Bonjour,

Comment puis-je faire pour me servir d'un objet (existant) en
construisant son nom dynamiquement dans un string ?



Pour créer une instance d'une classe à partir du nom d'assemblage et du
nom de classe sous forme de chaîne de caractères, utilisez
System.Activator.CreateInstance.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr





Avatar
Gilles TOURREAU
Le Fri, 31 Aug 2007 13:39:37 +0200, B#.. a
écrit:

Merci de votre réponse.
Mon problème n'est pas de créer l'instance mais d'utiliser une instance
existante : Les textbox sont déjà instanciées et je souhaite les
utiliser en
construisant leur nom dynamiquement dans le code.

Merci d'avance,

B#


"Patrick Philippot" a écrit dans le
message de news:
Bonjour,

Comment puis-je faire pour me servir d'un objet (existant) en
construisant son nom dynamiquement dans un string ?



Pour créer une instance d'une classe à partir du nom d'assemblage et du
nom de classe sous forme de chaîne de caractères, utilisez
System.Activator.CreateInstance.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr










En affectant la propriété VotreControle.Name.

Sinon, pouvez détailler plus précisement ce que vous voulez faire ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Patrick Philippot
B#.. wrote:
Mon problème n'est pas de créer l'instance mais d'utiliser une
instance existante : Les textbox sont déjà instanciées et je souhaite
les utiliser en construisant leur nom dynamiquement dans le code.



Ah bon! Pour accéder à un contrôle quelconque par son nom dans une Form:

Toute WinForm possède une propriété Controls qui est une collection
(ControlCollection) de Controls. Vous pouvez utiliser la méthode Find de
cette classe pour récupérer une instance d'un contrôle par son nom et le
transtyper de manière adéquate.

Control[] C = Controls.Find("TextBox1", false);
if (C.GetLength(0) != 0)
{
TextBox t = (TextBox) C[0];
t.Text = "Toto";
}

Find retourne un array de tous les contrôles portant ce nom, d'où le [0].

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
B#..
Exactement ce que je cherchais !!, Merci beaucoup de votre aide.

B#


"Patrick Philippot" a écrit dans le
message de news:
B#.. wrote:
Mon problème n'est pas de créer l'instance mais d'utiliser une
instance existante : Les textbox sont déjà instanciées et je souhaite
les utiliser en construisant leur nom dynamiquement dans le code.



Ah bon! Pour accéder à un contrôle quelconque par son nom dans une Form:

Toute WinForm possède une propriété Controls qui est une collection
(ControlCollection) de Controls. Vous pouvez utiliser la méthode Find de
cette classe pour récupérer une instance d'un contrôle par son nom et le
transtyper de manière adéquate.

Control[] C = Controls.Find("TextBox1", false);
if (C.GetLength(0) != 0)
{
TextBox t = (TextBox) C[0];
t.Text = "Toto";
}

Find retourne un array de tous les contrôles portant ce nom, d'où le [0].

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr