Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ListView AutoResizeColumns u Compact Framework-u

[es] :: .NET :: ListView AutoResizeColumns u Compact Framework-u

[ Pregleda: 1993 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

marko_81
Marko Acović

Član broj: 97248
Poruke: 133
93.86.131.*



+1 Profil

icon ListView AutoResizeColumns u Compact Framework-u12.05.2009. u 11:51 - pre 182 meseci
Imam ListView kontrolu na formi i hocu da mi se header prilagodjava velicini teksta koji se nalazi u njemu i po moguctvu da bude fiksirana sirina svake kolone.
U standardnom FW to nije problem, jer postoji AutoResizeColumns metoda koja resava problem.
Problem je sto CFW ne podrzava ovu metodu. Zna li neko kako bih mogao da dodam i ovu metodu u ListView kontrolu?
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
*.ADSL.neobee.net.



+987 Profil

icon Re: ListView AutoResizeColumns u Compact Framework-u12.05.2009. u 12:37 - pre 182 meseci
Imas u Graphics klasi f-ju MeasureString koja ti vraca velicinu iscrtanog stringa u pixelima sa datim fontom i na osnovu toga podesi sirinu kolone...

http://msdn.microsoft.com/en-u...hics.measurestring(VS.80).aspx
 
Odgovor na temu

marko_81
Marko Acović

Član broj: 97248
Poruke: 133
93.86.131.*



+1 Profil

icon Re: ListView AutoResizeColumns u Compact Framework-u12.05.2009. u 13:40 - pre 182 meseci
Probao sam da koristim Graphics klasu ali mi ne izracunava sirinu stringa kako treba (npr prikazuje 96 umesto 70).
Evo koda:
Code:

ListView lv = new ListView();

...

Graphics g = CreateGraphics();            
SizeF stringSize = new SizeF();
Font f = new Font("Tahoma", 7F, FontStyle.Bold);

String strText = "...";

stringSize = g.MeasureString(strText, f);
lv.Columns.Add(strText, Convert.ToInt32(stringSize.Width) , HorizontalAlignment.Left);


Ne kontam sta ne valja?
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
93.86.85.*



+987 Profil

icon Re: ListView AutoResizeColumns u Compact Framework-u12.05.2009. u 16:24 - pre 182 meseci
Code:


Font f = new Font("Tahoma", 7F, FontStyle.Bold);
...


stringSize = g.MeasureString(strText, f);


treba da bude:

Code:

stringSize = g.MeasureString(strText, lv.Font);

 
Odgovor na temu

marko_81
Marko Acović

Član broj: 97248
Poruke: 133
93.86.131.*



+1 Profil

icon Re: ListView AutoResizeColumns u Compact Framework-u13.05.2009. u 09:35 - pre 182 meseci
Probao sam i ovo i dalje prikazuje vecu velicinu stringa.

stringSize.Width vraca npr 105 a isti string moze lepo da stane i ako je sirina 70. Kao da se na osnovnu duzinu stringa dodaje jos nesto. Ili mozda nisu iste jedinice u kojima se izrazava pa otuda razlika?
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
93.86.85.*



+987 Profil

icon Re: ListView AutoResizeColumns u Compact Framework-u13.05.2009. u 16:28 - pre 182 meseci
Code:

stringSize = g.MeasureString(strText, lv.Font);


Problem sa metodom MeasureString je sto ne vraca 100% tacnu vrednost velicine stringa, jako brza metoda ali u tvom slucaju neprecizna...

Mozes koristiti:

Code:

stringSize=TextRenderer.MeasureText(strText, lv.Font);

...


lv.Columns.Add(strText, Convert.ToInt32(stringSize.Width)+10 , HorizontalAlignment.Left);



TextRenderer daje mnogo precizniju velicinu izracunatog stringa ali je dosta sporiji. Takodje na izracunatu velicinu dodajes jo 10px jer .NET dodaje male margine na text koji oznacava kolonu...
 
Odgovor na temu

bunker
Srđan Savković
Smederevo

Član broj: 4495
Poruke: 239
212.5.210.*



Profil

icon Re: ListView AutoResizeColumns u Compact Framework-u20.05.2009. u 14:35 - pre 181 meseci
Secam se da u starom .net fw (1.1) nisi mogao da postavis labelu sa tekstom koji se poravnjava sa desnom ivicom, a da isti bude boldovan. To je bila neka greska "unutra" i uvek je falilo po parce slova.

Pada mi na pamet da bi to mogao da bude i tvoj problem. Probaj da font postavis na Normal, mozda prodje. Meni je tad padalo na pamet da je MeasureString malo bagovao sa boldovanim tekstom. Ako sam u pravu, opet ne znam kako bi mogao to da resis, osim da zakucas font, a onda da izmeris koeficijent "rasta" teksta kad isti postane boldovan.

Nije važno stići prvi. Važno je prvo da stigneš.
 
Odgovor na temu

[es] :: .NET :: ListView AutoResizeColumns u Compact Framework-u

[ Pregleda: 1993 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.