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

Lee McPherson leemcpherson at ...626...
Tue Apr 15 06:16:57 CEST 2008


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