Beefy Boxes and Bandwidth Generously Provided by pair Networks Bob
There's more than one way to do things
 
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?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (5)
As of 2014-04-19 08:22 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (478 votes), past polls