How to update editbox uicontrol string during keypressfcn?
14 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hi,
I have an editbox uicontrol that has a KeyPressFunction that would need to read what has been typed into the uicontrol. How can I make the KeyPressFunction to read the typed text? If I use
get(gcbo,'String')
it returns the string from before pressing any keys / since the last Callback event (in other words whatever the string was after I last pressed enter or clicked away from the editbox).
I want for the editbox to read the string when I press the downarrow key and act according to what has been written.
Thanks in advance, EK
0 comentarios
Respuesta aceptada
Grzegorz Knor
el 13 de En. de 2012
Try this code as a workaround:
function test
close all
uicontrol('Style','Edit','String','matlab','KeyPressFcn',@clbck)
function clbck(src,evnt)
if isequal(evnt.Key,'downarrow')
import java.awt.Robot;
import java.awt.event.KeyEvent;
robot=Robot;
robot.keyPress(KeyEvent.VK_ENTER);
pause(0.01)
robot.keyRelease(KeyEvent.VK_ENTER);
disp(get(src,'String'));
end
Más respuestas (2)
ALLAEDINE AH
el 10 de Abr. de 2012
Hi guys! What if i wanted to enter only numbers, ie: 39 OR 1.2 ?
0 comentarios
Mitchell
el 23 de Mayo de 2012
This is straightforward, on the callback of the edit control do:
number = str2double(get(@myControl,'String'));
if(isnan(number))
set(@myControl,'String',defaultValue);
end
Also, if the str2double command was successful you could update defaultValue to number so that every time a non-numeric is entered the value will be replaced by the last numeric value.
0 comentarios
Ver también
Categorías
Más información sobre String Parsing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!