[Gambas-user] Gridview multiple select... how to read each selected row?

Lee McPherson leemcpherson at ...626...
Wed Apr 16 05:45:11 CEST 2008


Brilliant!  And so easy... although my gridview rows start at row=0 and end
at rows.count - 1.

Thanks for all your help!  I was really doing a hack job there :)
-Lee

On Tue, Apr 15, 2008 at 10:01 AM, Stephen Bungay <sbungay at ...981...> wrote:

>   New info. There IS a way to check the state of the row, I didn't see
> it and it is not (yet) documented but hopefully it soon will be.
>
> Gridview1.rows[X].selected
>
>   There... that's MUCH better and no more fussing about with the
> collection. Something like the example below should work rather nicely...
>
> For X = 1 to GridView1.rows.count
>     if GridView1.rows[X].selected then
>        ' insert processing logic here
>     end if
> Next
>
>
> Steve.
>
>
> Lee McPherson wrote:
> > Thanks Stephen and Benoit,
> >
> > I understand Stephen's suggestion, but it seems to only work with using
> the
> > CTRL key clicking each row with a mouse.  Now if you were to do the same
> > capture (under gridview_select event) by VERY quickly dragging the mouse
> > over several rows at time, I can actually get it to skip capturing some
> of
> > the rows!  My project will be using an LCD touch screen, so the user
> will
> > only be able to "drag select" and not point and click each row, so his
> > suggestion might not work for me.  I say "might" because I might be
> doing
> > something wrong.  Here is some code to replicate what I did.  (with an
> > gridview object called Gridview1, and a button to print the collection
> > called Button1)  I ended up using the MouseDown event on gridview1 to
> clear
> > the collection since I'm only worried about mouse drags to select
> multiple
> > events.
> >
> > PUBLIC rowsel AS COLLECTION
> >
> > PUBLIC SUB gridview1_Select()
> >   DIM rownumber AS String
> >   IF gridsel.Exist(gridView1.row)
> >     gridsel.Remove(gridView1.row)
> >   ELSE
> >     gridsel.Add(gridView1.row, gridView1.row)
> >   ENDIF
> > END
> >
> > PUBLIC SUB gridView1_MouseDown()
> >   gridsel.Clear
> > END
> >
> > PUBLIC SUB Button9_Click()
> >   DIM rownumber AS String
> >   FOR EACH rownumber IN gridsel
> >     PRINT "R: " & rownumber
> >   NEXT
> > END
> >
> >
> > On Mon, Apr 14, 2008 at 8:13 PM, Benoit Minisini <
> > gambas at ...1...> wrote:
> >
> >> On lundi 14 avril 2008, Stephen Bungay wrote:
> >>> Hi Lee;
> >>>     I never did understand why the grid control would allow you to
> >>> select multiple items and not have a mechanism to indicate which rows
> >>> were selected and which were not. Perhaps it does have such a
> mechanism
> >>> but I haven't been able to find it. Of course it could be deeply
> buried
> >>> but then thats a bad thing too.
> >>>    Anyway, what you can probably do is create a collection that holds
> >>> each selected item's row number, use the row number as the index into
> >>> the collection. Each time the select event is raised by the control,
> >>> trap it and store the row that was clicked on in the collection. If
> you
> >>> get an error when trying to add the row number to the collection
> because
> >>> the index key already exists then you know the row was already stored
> >>> and the user has clicked on a row to deselected it. Remove that row
> from
> >>> the collection, thus keeping the information in the collection in sync
> >>> with the selected rows in the grid.
> >>>    IMHO this is a kludge to accommodate the grid control which should
> >>> have a mechanism that exposes the selected state of it's row items to
> >>> the programmer.
> >>>
> >>> Steve.
> >>>
> >> At the moment, you have to test the Selected property of each row to
> get
> >> the
> >> selection.
> >>
> >> I admit that the process is not optimal! Maybe I should add a Selection
> >> property that would return the indexes of all selected rows?
> >>
> >> --
> >> Benoit Minisini
> >>
> >>
> -------------------------------------------------------------------------
> >> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
> >> Don't miss this year's exciting event. There's still time to save $100.
> >> Use priority code J8TL2D2.
> >>
> >>
> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
> >> _______________________________________________
> >> Gambas-user mailing list
> >> Gambas-user at lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/gambas-user
> >>
> >
> -------------------------------------------------------------------------
> > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
> > Don't miss this year's exciting event. There's still time to save $100.
> > Use priority code J8TL2D2.
> >
> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
> > _______________________________________________
> > Gambas-user mailing list
> > Gambas-user at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/gambas-user
> >
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
> Don't miss this year's exciting event. There's still time to save $100.
> Use priority code J8TL2D2.
>
> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
> _______________________________________________
> Gambas-user mailing list
> Gambas-user at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user
>



More information about the User mailing list