Avatar billede pablopablo Nybegynder
10. januar 2005 - 21:19 Der er 2 kommentarer

Farvelægning af datagrid celler

Hejsa...

Jeg har et datagrid, jeg har farvet nogle af cellerne i...dvs. det sker automatisk hvis cellernes indhold overstiger en given grænseværdi...det virker fint...men når jeg bruger den horisontale scroll, ja så virker det ikke korrekt...Jeg har prøvet, at rette op på det, ved at tilføje Invalidate() i datagriddets scroll-event, det hjælper på det...men det opfører sig stadig ikke tilfredsstillende... GetCellBounds () bliver ikke korrekt udregnet...og det resulterer i, da den/de røde celler blive gentegnes trods man  har scrollet og en anden værdi/celle nu står på den tidligere røde celles plads og dermed også bliver farvet rød...ja, det er nok svært at følge...men også lidt svært at forklare...

Jeg har farvet cellerne på følgende måde;

e.Graphics.FillRectangle(new SolidBrush(Color.Red), udDataGridReproducerbarCvSdMv.GetCellBounds(2,i).X, udDataGridReproducerbarCvSdMv.GetCellBounds(2,i).Y,
                            udDataGridReproducerbarCvSdMv.GetCellBounds(2,i).Width, udDataGridReproducerbarCvSdMv.GetCellBounds(2,i).Height);


Idet farven bliver tegnet ovenpå den eksisterende tekst, gentegner jeg teksten sådan her :

System.Drawing.Font font = new Font("Arial",8);
                        e.Graphics.DrawString(tekst,font,Brushes.Black,udDataGridReproducerbarCvSdMv.GetCellBounds(2,i).X, udDataGridReproducerbarCvSdMv.GetCellBounds(2,i).Y);

Kan jeg optimere denne kode eller findes der blot en meget smartere måde, at farve datagrid celler på...??

Håber meget i kan hjælpe mig!

Mvh. PabloPablo
Avatar billede lifo Nybegynder
11. januar 2005 - 16:23 #1
ja der er en meget smartere måde at gøre det på
prøv at se under datagrid http://www.syncfusion.com/faq

den er nede men google har en cached side her
www.syncfusion.com/faq/winforms/search/745.asp+DataGridColoredTextBoxColumn++c%23&hl=da" target="_blank">http://www.google.dk/search?q=cache:8NGoU5KVycYJ:www.syncfusion.com/faq/winforms/search/745.asp+DataGridColoredTextBoxColumn++c%23&hl=da
Avatar billede wisen Nybegynder
22. januar 2005 - 17:50 #2
.. en anden idé kunne være at bruge et andet grid : http://msdn.microsoft.com/vbasic/vbrkit/default.aspx - Microsoft tilbyder "The Visual Basic .NET Resource Kit" som bla. indeholder ComponentOne's FlexGrid.. jeg ved ikke om det er et udtryk for at de heller ikke synes at deres eget er for fedt :)

Jeg har ikke selv testet det, men der burde ikke være nogen problemer med at bruge det fra C# heller
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