Использую библиотеку Win32::GUI. Хочу сделать фильтр для TextField - если пользователь вводит что-то неправильно, игнорировать ввод символов. Пробовал return -1 - программа закрывается, на другие возвращаемые значения не реагирует. По сути нужен аналог preventdefault из javascript.
use Win32::GUI();
$w = Win32::GUI::Window->new(
-size => [300, 200],
);
$w->AddTextfield(
-name => 'tf',
-pos => [10, 10],
-size => [100, 20]
);
sub tf_Update {
if ($w->tf->Text() !~ m/^([0-9]{0,8}(?:[\.,][0-9]{0,2})?)$/) {
# preventdefault
# игнорируем ввод
}
}
$w->Center();
$w->Show();
Win32::GUI::Dialog();
sub w_Terminate {
return -1;
}