Selection handleren i DataGridView husker rækkefølgen hvormed rows er blevet selected. Med andre ord, den row som har focus vil figurere først i SelectedRows.
For at undgå dette er du vistnok desværre nødsaget til at loope over alle rows :-( Jeg mener dog at jeg har set et alternativ et sted, kan dog ikke huske hvor.
foreach (DataGridViewRow row in this.dataGridView1.Rows) { if (row.Selected) { // TODO: Bla. bla... } }
Det er dog naturligvis hurtigere at loope gennem dine SelectedRows og adde rows til en ny collection afhængigt af deres row index. Herefter kan denne traverseres i rette rækkefølge. (Mener dog stadig at der er et simplere alternativ)
Jeg har allerede implementeret den øverste løsning, men din alternative løsning lyder tiltalende. Den kigger jeg nærmere på lige om lidt, men no matter what. Du har fortjent dine point, så smid et svar.
Valget af løsning afhænger jo meget af dine data. Hvis du har mange rows er den første løsning dyr at anvende. Løsning nr. 2 er nok den billigste, hvis der altså ikke findes et tredje alternativ som er "billigere".
Jeg havde helt sikkert håbet at der var en løsning der brugte dg.SelectedRows på en lidt mere naturlig måde.
Min data kan godt ende med mange rækker over lang tid, og der burde ikke være valgt så mange rækker. Når det er sagt, så er der altid muligheden for at en eller anden synes det er sjovt at bruge CTRL + A under test eller lignende.
Det er dog ikke så hastighedskritisk et område af programmet, så begge løsninger vil virke.
Du kan jo lave et simpelt check på størrelsen af din selection for at vælge mellem de to løsninger. Personligt ville jeg dog altid holde mig til løsning 2. Er det du skal udføre noget som tager mange ressourcer, og derved tid, kan du jo altid udføre dette arbejde f.eks. med en BackgroundWorker,så dit UI ikke bliver låst, men jeg formoder at dette er at skyde lidt over målet i dette tilfælde.
Synes godt om
Ny brugerNybegynder
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.