You should wrap your code in a code block, so we don't have to reconstruct your code. See Writeup Formatting Tips

Your code, as you wrote above in html, is missing all the brackets needed to specify array elements. The code I believe you meant to post, as reconstructed by me, is shown below. I had to remove your resizable and geometry lines to get the Entries to show up, and I made the bg color white on the Entries for ease of visibility.

As far as getting focus to shift the way you want, I'm stumped, maybe a smarter monk may know. It may be in the way Table is designed. An alternative would be to use TableMatrix, see the second code example below.

Your corrected, runnable code:

#!/usr/bin/perl use Tk; use Tk::Entry; use Tk::Table; use Tk::LabFrame; use warnings; use strict; my $v="0.00"; my $mw = MainWindow->new; #$mw->geometry("200x200"); #$mw->resizable(0,0); $mw->title("Table Example"); my @id=qw/100 101 102 103 104 105 106 107 108 109 110/; my @name=qw/AAA BBB CCC DDD EEE FFF GGG HHH III JJJ KKK/; my @top2=qw/No Name Amount/; my $table_frame = $mw->LabFrame()->pack(); my $table = $table_frame->Table(-columns => 10, -rows => 6, -fixedrows => 1, -scrollbars => 'oe', -relief => 'raised',-background=>'white'); my $j=0; my $i=0; foreach my $j(1..11) { my $tmp_label=$table->Label(-text => $id[$i], -width => 8, -relief =>'raised'); my $tmp_label1 = $table->Label(-text => $name[$i], -width => 8, -relief =>'raised'); my $tmp_label2= $table->Entry( -width => 8, -relief =>'raised', -bg => 'white', -validate=>'key',-validatecommand=>sub{ $_[1] =~m/\d\d/} , -invalidcommand=>sub{$mw->bell} ); $tmp_label2->bind('Tk::Entry','<Return>',sub{shift->focusNext}); $table->put($j,1,$tmp_label); $table->put($j,2,$tmp_label1); $table->put($j,3,$tmp_label2); $i++; } $table->pack(); my $button_frame = $mw->Frame( -borderwidth => 4 )->pack(); $button_frame->Button(-text => "Exit", -command => sub {exit})->pack() +; MainLoop;

An alternative using TableMatrix, in which focus is passed the way you want by tabbing:

#!/usr/bin/perl use Tk; use Tk::TableMatrix; use warnings; use strict; my $mw = MainWindow->new; my $table = $mw->Scrolled("TableMatrix", -resizeborders=>'both', -titlerows => 1, -rows => 20, -colstretchmode=>'all', -cols => 3, -cache => 1, -scrollbars => "osoe"); for(my $row = 1; $row < 20; $row++) { my $entry = $table->Entry(-bg=>'white'); $table->windowConfigure("$row,5", -window => $entry); } $table->set("0,0", "Col 1"); $table->set("0,1", "Col 2"); $table->set("0,2", "Col 3"); $table->set("0,3", "Col 4"); $table->set("0,4", "Col 5"); $table->pack(-expand => 1, -fill => 'both'); MainLoop;

I'm not really a human, but I play one on earth.
Old Perl Programmer Haiku ................... flash japh

In reply to Re: Enter Key focus is not happening by zentara
in thread Enter Key focus is not happening by gocpon

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.