Rendre visible un panel récupéré dans une boucle foreach

Ilovedev Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour à tou(te)s et bonnes fêtes :o)

Je cherche à coder ceci (mais peut-être que je crois trop au père-noël...) :

while (reader.Read())
{
Label1.Text = string.Format("{0}", reader.GetString(0));
string str = Label1.Text;
string[] split = str.Split(new char[] { ';' });
foreach (string s in split)
{
//s .visible = true;
}
}
reader.NextResult();

J'aimerai pour chaque instance de s rajouter le texte ".Visible = true" et que du coup cela génère la visibilité du contrôle.

Je débute je m'excuse si cette question est tordue :o/
Merci d'avance
A voir également:

2 réponses

Utilisateur anonyme
 
salut,

alors ce que tu cherche à faire est une indirection. En c# c'est la reflection :

https://docs.microsoft.com/en-us/dotnet/api/system.reflection?redirectedfrom=MSDN&view=netframework-4.8

je ne le maîtrise absolument pas, j'avais voulu utiliser l'indirection en c#, j'ai donc trouvé reflection, mais pas manque de temps je n'ai pas cherché =/ ca avait l'air complexe ... en tout cas assez pour me prendre pas mal de temps.

naga
0
Ilovedev Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup d'avoir pris le temps de me répondre.
Je vais étudier le lien que tu m'as donné :)
0
Ilovedev Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
Outch...hyper complexe...pas trouvé ma soluce encore...
0
Utilisateur anonyme
 
oui c'est ce que je te disais, les indirections en c# ça fais mal x)

bon sinon un simple switch qui prendra la chaine pour résoudre l'élément graphique est envisageable ;)
0
Ilovedev Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
Oui ce serait plus simple j'avoue...s'il est possible de charger mon switch dynamiquement en fonction du contenu de ma table. Chaque "case" représente le champs Libelle de ma table TABLE(Libelle1, Libelle2,...).
Il faudrait arriver à quelque chose du style :

Case Libelle1
(s).Visible = true;
(s).Visible = true;
Case Libelle2
(s).Visible = true;
(s).Visible = true;
(s).Visible = true;

quand (s) est :

while (reader.Read())
{
Label1.Text = string.Format("{0}", reader.GetString(0));
string str = Label1.Text;
string[] split = str.Split(new char[] { ';' });
foreach (string s in split)
{
//s .visible = true;
}
}
reader.NextResult();




Tu crois que c'est possible ?? (là...on complique sévère !)
0
Utilisateur anonyme
 
ca va être possible dans le sens ou tu saura/que la chaine fourni.

par exemple tu ne pourras pas avoir



{"champ_saisie1"}.visible = true;


mais plutot


switch(s)
{
.
.
.
case "champ_saisie1" :
champ_saisie1.Visible = true;break;
.
.
.
}

donc c'est assez limité.
0