Disons que j'ai un contrôle et que je veux l'empêcher d'être édité.Comment désactiver .net Winforms Controls sans changer leur apparence?
La définition de la propriété Enabled du contrôle sur False fonctionnera, mais l'apparence du contrôle changera en conséquence, généralement dans une police noire sur gris difficile à lire. Quand la lisibilité est toujours importante, c'est un vrai problème.
Pour une zone de texte, il y a quelques corrections évidentes:
Textbox1.BackColor = Color.White;
ou
Textbox1.ReadOnly= true; // instead of setting Enabled to false
mais malheureusement, cela ne fonctionnera pas pour tous les contrôles (par exemple boutons radio)
Une autre solution est de laisser la propriété Enabled intacte, et de vous abonner à l'événement focus comme ceci (mais ce n'est pas une solution vraiment élégante)
this.Textbox1.Enter += new System.EventHandler(this.Textbox1_Enter);
private void Textbox1_Enter(object sender, EventArgs e)
{
Textbox1.FindForm().ActiveControl = null;
}
Avez-vous vu d'autres façons de résoudre ce problème? (et je veux dire les solutions du monde réel, bien sûr, vous pouvez capturer une capture d'écran du contrôle et afficher la copie sur le contrôle ...: p)
J'ai posté avant que j'en ai fini avec la question. –
ahah! Encore un autre sniper de réputation :) – Brann