Est-ce que quelqu'un sait quelle propriété définit la couleur du texte pour le contrôle désactivé? Je dois afficher du texte dans la zone de texte désactivée et je souhaite définir sa couleur en noir.
Merci!
Est-ce que quelqu'un sait quelle propriété définit la couleur du texte pour le contrôle désactivé? Je dois afficher du texte dans la zone de texte désactivée et je souhaite définir sa couleur en noir.
Merci!
REMARQUE: voir le Guépard de réponse ci-dessous car il identifie une condition préalable pour obtenir cette solution fonctionne. Réglage de l' BackColor
de la TextBox
.
Je pense vraiment ce que vous voulez faire est de permettre à l' TextBox
et définir l' ReadOnly
de la propriété d' true
.
C'est un peu difficile à changer la couleur du texte dans une désactivé TextBox
. Je pense que vous auriez probablement à la sous-classe et de remplacer l' OnPaint
événement.
ReadOnly
mais devrait vous donner le même résultat qu' !Enabled
et vous permettra de garder le contrôle de la couleur et de la mise en forme de l' TextBox
. Je pense qu'il aura aussi toujours en charge de la sélection et copie de texte à partir de l' TextBox
ce qui n'est pas possible avec un handicapé TextBox
.
Une autre alternative simple est d'utiliser un Label
au lieu de TextBox
.
En outre, pour que ForeColor soit obéi sur une zone de texte marquée en lecture seule, vous devez définir explicitement le BackColor. Si vous voulez qu'il utilise toujours le BackColor par défaut, vous devez expliciter l'ensemble, car le concepteur est trop intelligent pour son propre bien ici. Il suffit de définir le BackColor à sa valeur actuelle. Je fais cela dans l'événement Load pour le formulaire, comme suit:
private void FormFoo_Load(...) {
txtFoo.BackColor = txtFoo.BackColor;
}
Vous pouvez essayer ça. Remplacez l'événement OnPaint de la zone de texte.
protected override void OnPaint(PaintEventArgs e)
{
SolidBrush drawBrush = new SolidBrush(ForeColor); //Use the ForeColor property
// Draw string to screen.
e.Graphics.DrawString(Text, Font, drawBrush, 0f,0f); //Use the Font property
}
définir les styles de contrôle sur "UserPaint"
public MyTextBox()//constructor
{
// This call is required by the Windows.Forms Form Designer.
this.SetStyle(ControlStyles.UserPaint,true);
InitializeComponent();
// TODO: Add any initialization after the InitForm call
}
Ou vous pouvez essayer ce hack
En entrer événement définir le focus
int index=this.Controls.IndexOf(this.textBox1);
this.Controls[index-1].Focus();
Donc, votre contrôle ne se concentrera pas et ne se comportera pas comme un handicapé.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.