PowerBuilder – Simple ‘Windows Standard’ Row Selection
Allowing for ‘Windows Standard’ muli row selection is pretty straight forward. By ‘Windows Standard’ I mean you can select a range by clicking on a row, holding the shift key and clicking on a second row to select all the rows between the two or by holding down the control key and clicking you can select multiple rows (or unselect one previously selected without unselecting all the others). Anyway the code is in the clicked event of the datawindow.
ll_selectedrow = getselectedrow(0) // select range IF KeyDown(keyShift!) THEN IF ll_selectedrow = 0 THEN This.SelectRow(row, True) ELSE This.SelectRow(0, False) IF row > ll_selectedrow THEN FOR ll_rc = ll_selectedrow TO row This.SelectRow(ll_rc, True) NEXT ELSE FOR ll_rc = row TO ll_selectedrow This.SelectRow(ll_rc, True) NEXT END IF END IF // multi select ELSEIF KeyDown(keyControl!) THEN IF This.IsSelected(row) THEN This.SelectRow(row, False) ELSE This.SelectRow(row, True) END IF // single select ELSE IF This.IsSelected(row) THEN This.SelectRow(0, False) This.SelectRow(row, True) ELSE This.SelectRow(0, False) This.SelectRow(row, True) END IF END IFYou might also be interested in