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

Lee McPherson leemcpherson at ...626...
Tue Apr 15 06:18:40 CEST 2008


oops, the PUBLIC rowsel as COLLECTION should read:

PUBLIC gridsel as NEW COLLECTION

(that NEW statement is key to getting the collection to work... it took me a
while to figure that part out, too!)

On Tue, Apr 15, 2008 at 12:16 AM, Lee McPherson <leemcpherson at ...626...>
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
> >
>
>



More information about the User mailing list