use Tk; my $mw = MainWindow ->new ; my $listFrame = $mw->Frame->pack; my $listBox = $listFrame->Scrolled( 'Listbox', -scrollbars => 'osoe', -selectmode => 'extended', -background => 'white', -height => 10, -width => 10, -selectborderwidth => 0, -relief => 'flat', )->pack; $listBox->insert('end', qw/red yellow green blue grey/); $listBox->bind('', sub { my @elements = $listBox->curselection ; my $rooty = $listBox->rooty; my $y = $Tk::event->Y - $rooty; my $selectedIndex = $listBox->nearest( $y ); my $selectedElement = $elements[$selectedIndex]; print "rooty $rooty \n"; print "elements @elements |selectedIndex $selectedIndex |selectedElement $selectedElement \n"; } ); MainLoop;