This works for me in my application:
Panel does not have User CTLs defined
ListBox defined with Multiple Selections only (not Automatic, or SOE)
In the PROCESS_LB logic I have:
IF (_EOM$=$2E$) THEN {
LIST_BOX READ MY_LB.CTL,SELECTED$; LET SELECTED$=STP(MNEMONIC SELECTED$)
WHILE POS("~"=SELECTED$) ! I use ~ as my row separator
LET X$=SELECTED$(1,POS("~"=SELECTED$)-1),SELECTED$=SELECTED$(POS("~"=SELECTED$)+1)
READ DATA FROM X$ TO LINE$
! do whatever you gotta do with LINE$
WEND
}
IF (_EOM$=$02$ OR _EOM$=$0D$) THEN {
! whatever you need to do on a double-click/Enter
}