web-dev-qa-db-fra.com

Désactiver TextBox

Je veux rendre certaines TextBoxes de mon formulaire non modifiables, mais je veux que le text soit clair (noir pas gris) et c'est pourquoi je ne veux pas utiliser

myTextBox.Enabled = false;

D'une manière ou d'une autre, je souhaite le désactiver, mais avec une couleur non grise.

Est-ce que quelqu'un a un indice?

60
Mahdi Tahsildari

En utilisant le TextBox.ReadOnly propriété

TextBox.ReadOnly = true;

Pour un fond non gris, vous pouvez changer le TextBox.BackColor propriété de SystemColors.Window Couleur

textBox.BackColor = System.Drawing.SystemColors.Window;

Lorsque cette propriété est définie sur true, le contenu du contrôle ne peut pas être modifié par l'utilisateur au moment de l'exécution. Avec cette propriété définie sur true, vous pouvez toujours définir la valeur de la propriété Text dans le code. Vous pouvez utiliser cette fonctionnalité au lieu de désactiver le contrôle avec la propriété Enabled pour permettre la copie du contenu et l'affichage des info-bulles.

100
PaRiMaL RaJ

Utilisez la propriété ReadOnly sur la zone de texte.

myTextBox.ReadOnly = true;

Mais rappelez-vous: propriété TextBoxBase.ReadOnly

Lorsque cette propriété est définie sur true, le contenu du contrôle ne peut pas être modifié par l'utilisateur au moment de l'exécution . Avec cette propriété définie sur true, vous pouvez toujours définir la valeur de la propriété Text dans le code . Vous pouvez utiliser cette fonctionnalité au lieu de désactiver le contrôle avec la propriété Enabled pour permettre la copie du contenu et l'affichage des info-bulles.

15
Habib

Vous pouvez essayer d'utiliser:

textBox.ReadOnly = true;
textBox.BackColor = System.Drawing.SystemColors.Window;

La dernière ligne n'est nécessaire que si vous souhaitez une couleur d'arrière-plan non grise.

5
Alina B.

Si vous voulez que votre TextBox soit non modifiable, vous devriez le faire ReadOnly .

3
Marius Bancila

Il suffit de définir en XAML:

        <TextBox IsReadOnly="True" Style="{x:Null}" />

Donc, ce texte ne sera pas grisé.

2
Jan Abramek

Si vous voulez le faire en utilisant XAML, définissez la propriété isReadOnly sur true.

1
A. Wolf

Ceci est pour GridView.

 grid.Rows[0].Cells[1].ReadOnly = true;
0
Dilip Kumar Choudhary