use Tk; use strict; use warnings; my $value; my $mw = MainWindow->new; my $entry = $mw->Entry( -state => 'readonly', -textvariable => \$value )->pack; my $lb = $mw->Listbox( -height => 0 )->pack; $lb->insert('end', qw/one two three four five six/); $lb->bind('', [\&setItem, \$value, Ev('@')]); sub setItem { my ($lb, $valSR, $xy) = @_; $lb->selectionClear(0, 'end'); my $index = $lb->index($xy); if (defined($index)) { $lb->selectionSet($index); $$valSR = $lb->get($index); } } MainLoop; #### use Tk; use strict; use warnings; my $value; my $mw = MainWindow->new; my $entry = $mw->Entry( -state => 'readonly', -textvariable => \$value )->pack; my $lb = $mw->Listbox( -height => 0 )->pack; $lb->insert('end', qw/one two three four five six/); $lb->bind('', [\&setItem, \$value]); sub setItem { my ($lb, $valSR) = @_; my $xy = $lb->XEvent->xy; $lb->selectionClear(0, 'end'); my $index = $lb->index($xy); if (defined($index)) { $lb->selectionSet($index); $$valSR = $lb->get($index); } } MainLoop;