Vb 2005 - Impostare la proprietà readonly delle textbox da codice

martedì 07 ottobre 2008 - 22.57

DomA Profilo | Expert

Salve a tutti,
io ho il seguente problema: sui vari form vorrei impedire la scrittura nelle textbox, a meno che non si decida esplicitamente di aggiungere o modificare i dati con gli appositi pulsanti. Se imposto la proprietà enebled su false ho dei problemi di leggibilità del contenuto delle textbox. Avevo pensato di utilizzare la proprietà readonly, che non crea il suddetto problema, tuttavia mi sono accorto che non è possible impostarla da codice (o almeno non compare nell'elenco dell'intellisense). Qualcuno ha dei suggerimenti?
Grazie in anticipo.
Scusate o postato due volte lo stesso thread.

Domenico

aiedail92 Profilo | Expert

Strano, con l'Intellisense dovrebbe vedersi (non mi dà problemi nè con C# nè con VB.Net)

Prova a scrivere il codice e compilarlo, vedi se ti dà errori.

Luca

DomA Profilo | Expert

Hai ragione se uso questo codice non ho problemi:
Me.TextBox1.ReadOnly = False

Tuttavia essendo diverse TextBox ho utilizzato questo codice:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Perchè?
Ciao
Domenico

aiedail92 Profilo | Expert

Dà l'errore perchè puoi convertire implicitamente una classe derivata nella sua classe base, ma non puoi fare implicitamente il contrario. Infatti non tutti i Control sono TextBox, per verificare che lo sia infatti hai usato

If TypeOf tb Is TextBox Then

Solo che tb è ancora definito come Control, quindi la proprietà ReadOnly non è definita per il compilatore. Quello che devi fare è eseguire il cast su TextBox e quindi assegnare la proprietà:

Private Sub Sbloccatxt() For Each tb As Control In Me.TabControl1.TabPages(0).Controls If TypeOf tb Is TextBox Then tb.Enabled = False CType(tb, TextBox).ReadOnly = False tb.BackColor = Color.White End If Next End Sub

Luca

DomA Profilo | Expert

Ciao luca,
grazie per l'aiuto e soprattutto per la chiara spiegazione.
Adesso è tutto ok.

Domenico

aiedail92 Profilo | Expert

È un piacere dare una mano dove posso

Luca

DomA Profilo | Expert

Come vedi dalla modifica apportata al post, ho pensato bene di utilizzare la tua soluzione perchè l'ho testata e non da problemi.
Grazie ancora e ciao.
Domenico
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5