Avatar billede jess_chr Nybegynder
10. januar 2006 - 11:11 Der er 5 kommentarer

DateTimePicker.Enabled - Disabling uden at gråtone kontrollen!

jeg er igang med at lave et program der har nogle textboxe, combobokse, Checkbokse og DateTimePickers osv.

Programmet har readonly og edit kørende på samme form og det jeg egentlig bare gør(er sjældent så simpelt) er at jeg sætter min

TextBox.ReadOnly = true;
ComboBox.Enabled = false;
DateTimePicker.Enabled = false;
CheckBox.Enabled = false;
og visaversa...

det virker, de opføre sig som jeg vil have det men det er en øjebæ at se på, alle kontrollerne bliver gråtonet, og det var ikke meningen, jeg ville gerne have at kontrollerne så ud som de plejede...

textboksen satte jeg BackColor = Syst<i kender smøren>.Web.White;

på ComboBoxene gjorde jeg det samme, der satte jeg blot yderligere DropDownStyle = DropDownList, og så så det pænt ud...

nu kommer problemet, mine DateTimePickers kan jeg ikke finde en lignende indstilling på, er der nogen der kender svaret?

og mine checkbokse er TreeState så der går det ikke at gråtone den, det giver misforståelser, hvem har et svar?
Avatar billede bitsch Nybegynder
11. januar 2006 - 13:04 #1
Det kan man ikke umiddelbart (du må tegne selv).

Og i øvrigt giver det jo en dårlig brugeroplevelse, for hvordan skal du så ellers fortælle bugeren at feltet er readonly?

Overvej et alternativt design hvor informationen fra din kontrol bliver vist i en Label, TextBox etc. Personligt ville jeg finde det død irreterrende at en readonly kontrol blev vist som værende enablet uden at være det.
Avatar billede jess_chr Nybegynder
11. januar 2006 - 16:49 #2
farven som textfelter skal have i readonly finder jeg ud af senere, det er lavet som en global variabel så det er lige meget, det var mere i store træk jeg skulle vide hvordan det blev gjort på andet end textfelter og comboboxe.

jeg tror jeg laver et eller andet svindleri til at vise data på en behagelig måde...
Avatar billede bitsch Nybegynder
11. januar 2006 - 19:01 #3
Det er ikke alle kontroller som du kan skifte baggrundsfarver på i disabled tilstand. Disse skiftes i henhold til dine systemindstillinger. Så du kan altså ikke lave en variabel for baggrundsfarve som du kan applye til alle dine kontroller, ved mindre at du på enkelte selv tegner kontrollen (eller dele heraf).
Og igen, vær varsom med at lade brugeren tro at kontrollen er editerbar når den ikke er det.
Avatar billede bitsch Nybegynder
11. januar 2006 - 19:16 #4
Hvis du skal igang med tegneriet, så kan du f.eks. tegne en DateTimePicker ved at anvende renderen fra ComboBox (den har ikke sin egen renderer)

System.Windows.Forms.ComboBoxRenderer.DrawTextBox(...)

Men personligt ville jeg blot vise data i en tilsvarende kontrol som tilfredsstillede behovet for anden baggrundsfarve (TextBox)
Avatar billede jess_chr Nybegynder
12. januar 2006 - 11:15 #5
det er rimelig skarpt gættet det er præcis hvad jeg er igang med at gøre, og jeg har ændret det visuelle layout således det er nemt at se om ReadOnly er aktiv ved at skifte ReadOnly på textbox til Enable, så bliver farven tonet ud, det er for at bibeholde baggrund og font text color så text stadig kan læses nemt!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester