Diciamo che ho un controllo e voglio impedirne la modifica.Come si disabilitano i controlli .net Winforms senza modificarne l'aspetto?
L'impostazione della proprietà Enabled del controllo su False funzionerà, ma l'aspetto del controllo cambierà di conseguenza, in genere in un carattere nero su grigio di difficile lettura. Quando la leggibilità è ancora importante, questo è un problema reale.
Per un TextBox, ci sono alcune correzioni evidenti:
Textbox1.BackColor = Color.White;
o
Textbox1.ReadOnly= true; // instead of setting Enabled to false
ma purtroppo questo non funziona per ogni controllo (ad esempio pulsanti radio)
altro la soluzione è di lasciare intatta la proprietà Enabled e di iscriversi all'evento focus come questo (ma questa non è una soluzione davvero elegante)
this.Textbox1.Enter += new System.EventHandler(this.Textbox1_Enter);
private void Textbox1_Enter(object sender, EventArgs e)
{
Textbox1.FindForm().ActiveControl = null;
}
Hai visto altri modi per affrontare questo problema? (E mi riferisco soluzioni del mondo reale, naturalmente è possibile catturare uno screenshot del controllo e visualizzare la copia per il controllo ...: p)
Ho postato prima che la domanda fosse effettivamente terminata. –
ahah! Ancora un altro cecchino della reputazione :) – Brann