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

Stephen Bungay sbungay at ...981...
Tue Apr 15 16:01:10 CEST 2008


   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
> 





More information about the User mailing list