Newsgroup: it.comp.lang.visual-basic
Titolo: Proprietà Locked ed Enabled

    Ciao a tutti
ho un problemino con un form realizzato con VB6.
L'applicazione legge e scrive dati da un VB.
Quando sono in modalità  "visualizzazione dati" ho la necessità di bloccare
i campi di immissione (sarebbe inutile scriverci sopra).
Con i controlli TextBox e ComboBox imposto la proprietà Locked = TRUE e
tutto va bene. Ma in controlli come OptionButton, CheckBox e MaskEdBox la
proprietà Locked non è disponibile pertanto sono costretto ad impostare
Enabled=FALSE.
Purtroppo impostando Enabled=FALSE cambia il colore del controllo (diventa
grigio) e questo rende quasi illegibili alcuni dati presenti nel form
(Locked = TRUE invece non cambia l'aspetto grafico del controllo)
Esiste un modo per bloccare i controlli OptionButton, CheckBox e MaskEdBox
senza alterarne l'aspetto grafico?
...grazie per l'aiuto.

 
Puoi inserirli in un frame ed abilitare/disabilitare quello.
ciao
	maxx
-- 
NOSPAM: Rimuovere i trattini dallo username!
Cut hyphens from my username!

 (Locked = TRUE invece non cambia l'aspetto grafico del controllo)
Se usi dei colori di sistema sballati non è colpa del controllo :)
(mio cuGGino usava le evidenziazioni in giallo...)
Il controllo TextBox ha il locked per uno scopo: permettere il copia-incolla
senza permettere la modifica dei dati nel controllo.
Dato che è ovviamente impensabile il copia-incolla del valore Checked di un
checkbox, questo non ha la proprietà Locked.
Le linee guida Microsoft impongono l'uso di Enabled = False per il blocco
dell'immissione proprio perchè questo cambia il colore e l'utente non è
tentato a tirare sul il telefono per insultarti dato che clicca sopra al
chek da un quarto d'ora ma quello non vuole cambiare.
Tanto è che le textbox con locked = true hanno quasi sempre il backcolor =
vbButtonFace (cioè lo stesso che avrebbe in caso di Enabled = False,
controlla ad. es. le scritte nelle finestre delle proprietà dei files)
Ciao
--
NeoDataType : 
http://www.neodatatype.net
Sito Comune : 
http://www.it-lang-vb.net

 
Un option button o un checkbutton disabilitati hanno la label di colore 
molto simile allo sfondo grigio predefinito del form. Se li si vuole 
utilizzare sia per fare l'inserimento dei dati che per visualizzarli 
disabilitarli non li rende user-friendly...


 disabilitarli non li rende user-friendly...
Scusa? :)


 
Supponi di avere in un form 2 option button:
* fattura
* ricevuta
Quando stai creando un nuovo documento fiscale i 2 option button devono 
essere abilitati in modo che l'utente possa effettuare la scelta.
Quando "visualizzi" un documento fiscale puoi invece volere impedire 
modifiche. Se disabiliti gli option button le relative caption verranno 
visualizzate come nella figura di cui sopra, la qual cosa non e' molto 
carina o user-friendly.
Non mi sembrava molto difficile come concetto. ;-)


 carina o user-friendly.
Pensa che stupidi alla Microsoft a definire questo comportamento per le app.
"designed for windows" ;)


 
Non e' questo il punto. Se voglio disabilitare un option button ma 
evitare questo comportamento della caption metto il controllo in un 
frame e disabilito quello, si tratta semplicemente di un "effetto" 
diverso. In questo caso e' la caption del frame a risultare 
"disabilitata"...


 "disabilitata"...
Sě, ma non č user friendly.


 
Della serie: "Se non ho l'ultima parola non vado a dormire tranquillo".


 vbButtonFace (cioè lo stesso che avrebbe in caso di Enabled = False,
Io uso le impostazioni standard di WINDOWS e le textbox con locked = true
NON cambiano colore come invece avviene nel caso di Enabled = False.
Il problema è che avendo un form piuttosto complesso in modalità "sola
lettura" (ma con la possibilità di copiare dalle textbox) è piuttosto
bruttino vedere gruppi di controlli in grigio ed altri apparentemente
'normali' - ciò può creare all'utente una certa confusione e rendere il
tutto poco user-friendly :-(
Finora l'unica soluzione accettabile mi sembra quella di inserire le
checkbox all'interno di una frame senza caption e senza bordo (praticamente
invisibile).
Il rischio e appunto che qualcuno ti telefoni imprecando perchè da 2 ore non
riesce a cliccare sulla check :-)


Mi trovo d'accordo con Zanna
(anche non giurerei di non avere in qualche nostra form un frame
disabilitato)
L'effetto diverso e' voluto proprio per dare un feedback visivo all'utente
che sa che non puo' operare su quel controllo, vedere disabilitata solo la
caption del frame e' una cosa che tipicamente passa inosservata; inoltre, a
seconda di come e' organizzata la form, e' facile che per raggiungere lo
scopo sia necessario sparpagliare parecchi frame per raccogliere i controlli
voluti, e gioco forza devi nascondere il bordo e la caption del frame
perche' magari non ha senso che si veda un raggruppamente in quel contesto.
Se poi vogliamo fare un discorso piu' generale, bisognerebbe spiegare
all'utente che determinate scelte non sono imposte ne' da chi ha compila il
programma, ne' da chi ha compilato il sistema operativo, ma sono opzioni
liberamente modificabili: se non legge bene il colore "disabilitato" di
default, che se ne scelga uno di suo gradimento!
Fosse per me, scriverei 100 volte sullo splash screen:
"Sono 10 anni che in Windows ci si sposta tra i campi con TAB e non con
INVIO!"
:-)
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 
In questo caso credo che il problema sia proprio il contrario, cioe' 
venire incontro all'utente che in un particolare contesto puo' avere 
difficolta a capire il significato dei dati.
Ma e' ovviamente solo questione di gusto personale.
ciao
