Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: How do I recognize that the user has pressed enter inside a text box? Win32::GUI Question

by dree (Monsignor)
on Jul 02, 2002 at 09:39 UTC ( #178809=note: print w/replies, xml ) Need Help??


in reply to How do I recognize that the user has pressed enter inside a text box? Win32::GUI Question

You need the Class package that you have to associate with the RichEdit widget.
Then you can bind the KeyPress event.
This code below works form me with Win32::GUI 0.502 but could have problems with more recent versions.

I hope dada could give us a more complete answer :)
use strict; use Win32::GUI; my $win = new Win32::GUI::Window( -name => "Window", -text => "Test", -width => 200, -height => 100, -left => 200, -top => 100, -minsize => [200, 100], ); my $TextClass = new Win32::GUI::Class( -name => "_Editor", -extends => "RichEdit", -widget => "RichEdit", ); my $SearchText = $win->AddRichEdit ( -class => $TextClass, -left => 10, -top => 10, -width => 170, -height => 52, -text=>"", -name=>"searchtext", ); sub searchtext_KeyPress { my($key) = @_; if ($key == 13) { print "Enter!\n"; } return 1; } sub Window_Terminate { exit; return -1; } $win->Show(); Win32::GUI::Dialog();

UPDATE:

Above code works with RichEdit. If you want to recognize enter press on a Textfield, recent rumours on the Win32::GUI mailing list, point me to this:
use strict; use Win32::GUI; my $win = new Win32::GUI::Window( -name => "Window", -text => "Test", -width => 200, -height => 100, -left => 200, -top => 100, -minsize => [200, 100], ); my $SearchText = $win->AddTextfield ( -left => 10, -top => 10, -width => 170, -height => 52, -text=>"", -name=>"searchtext", -multiline=>1, ); sub searchtext_Change{ my $rtest = 0; my $input =''; $input=$SearchText->Text(); $rtest = $input=~/\r\n$/; if($rtest){print "Enter!\n";} } sub Window_Terminate { exit; return -1; } $win->Show(); Win32::GUI::Dialog();
Thanks to John Rogers to show us the trick (with a little fix from me ;) )
  • Comment on Re: How do I recognize that the user has pressed enter inside a text box? Win32::GUI Question
  • Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://178809]
help
Chatterbox?
[james28909]: cant seem to make it look in linux module path for md5.pm
[james28909]: no matter how i prepare the paths. oh well. looks like ill just have to start wsl perl from scratch
[Corion]: james28909: You can get a list of all modules on your Windows Perl via the autobundle command in the cpan shell. But that likely lists many more modules than you actually want. I recommend a clear separation and installing modules on ...
[Corion]: ... both Perls separately. I use cpanfiles or Makefile.PL for that - listing all modules for an application there allows me to install them via cpanm . or cpan . automatically without any further interaction

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (5)
As of 2018-05-23 17:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Notices?