Nehmen wir an, ich habe eine Kontrolle und möchte verhindern, dass sie bearbeitet wird.
Wenn Sie die Eigenschaft "Aktiviert" des Steuerelements auf "Falsch" setzen, funktioniert das zwar, aber das Erscheinungsbild des Steuerelements ändert sich entsprechend, in der Regel zu einer schwer lesbaren Schriftart (schwarz über grau). Wenn die Lesbarkeit noch wichtig ist, ist dies ein echtes Problem.
Für eine TextBox gibt es ein paar offensichtliche Korrekturen:
Textbox1.BackColor = Color.White;
または
Textbox1.ReadOnly= true; // instead of setting Enabled to false
aber leider funktioniert das nicht für alle Steuerelemente (z.B. Radiobuttons)
Eine andere Lösung besteht darin, die Eigenschaft Enabled unberührt zu lassen und das Fokus-Ereignis wie folgt zu abonnieren (dies ist jedoch keine wirklich elegante Lösung)
this.Textbox1.Enter += new System.EventHandler(this.Textbox1_Enter);
private void Textbox1_Enter(object sender, EventArgs e)
{
Textbox1.FindForm().ActiveControl = null;
}
Haben Sie andere Möglichkeiten gesehen, mit diesem Problem umzugehen? (und ich meine Lösungen aus der realen Welt; natürlich können Sie einen Screenshot des Steuerelements erstellen und die Kopie über dem Steuerelement anzeigen...:p)