Desactiver un Composant sans en changer l'apparence (non grisé)

spyz91
Messages postés
18
Date d'inscription
mercredi 5 août 2009
Statut
Membre
Dernière intervention
13 novembre 2009
- 12 oct. 2009 à 11:28
pierrehenri56
Messages postés
63
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
29 octobre 2013
- 3 mars 2010 à 10:43
Bonjour,

Est-il possible de désactiver un composant comme une TextBox ou un DropDownList sans en changer son apparence ?

C'est-à-dire que le composant doit apparaitre "visuellement" activé mais que le contenu ne soit pas modifiable.

Je dois garder l'utilisation de textbox et DDL,
car la possibilité de modifier les valeurs est disponible selon les droits de l'utilisateur.


Merci de vos pistes et solutions, même alternatives.

Bonne journée !

1 réponse

pierrehenri56
Messages postés
63
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
29 octobre 2013
1
3 mars 2010 à 10:43
Bonjour,

Oui c'est tout à fait possible. Pour désactiver un contrôle il faut utiliser la propriété "enabled=False" mais celle-ci va griser ton contrôle et tu ne pourra pas changer l'apparence.

Il faut donc utiliser la propriété ReadOnly.

- Pour la TextBox :
laTextBox.ReadOnly = true;
laTextBox.ForeColor = System.Drawing.Color.Black;
laTextBox.BackColor = System.Drawing.Color.Transparent;
laTextBox.BorderStyle = BorderStyle.NotSet;


Après tu peux mettre les propriétés et les attributs que tu veux.

- Pour la DDL, il n'y a pas de readOnly, il faut utiliser enabled en fonction des items que tu veux "masquer"

for (int i = 0; i < ddl.Items.Count; i++)
{
   if (!ddl.Items[i].Selected)
      {
         ddl.Items[i].Enabled = false;
      }
   ddl.Font.Bold = true;
}


En espérant avoir répondu a la question.
0