Problem in retreiveng textbox string in uicontrol created dialog
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Cristian Berceanu
am 6 Sep. 2019
Kommentiert: Adam Danz
am 9 Sep. 2019
Hello,
I have the following function, which creates a dialog with two textboxex (Textbox1 and Textbox2 and a checkbox). I would like two things to happen as I type text in Textbox 1:
- toggle the checkbox
- programatically copy the text from Textbox1 to Textbox2
Toggling the checkbox always works, however programatically copying the same text in Textbox 2 only works if I add a breakpoint in the Textbox_callback function. If I do not add this breakpoint, then Textbox2 will only display the "original text" text each time I change the text in Textbox1.
What am I doing wrong?
function choosedialog
d = dialog('Position',[300 300 250 200],'Name','Serial Number');
Textbox1 = uicontrol('Parent',d,...
'Style','edit',...
'Position',[20 100 210 40],...
'String','original text',...
'KeyPressFcn',@Textbox_callback);
ck1 = uicontrol('Parent',d,...
'Style','checkbox',...
'Position',[20 150 210 40],...
'String','Checkbox');
Textbox2 = uicontrol('Parent',d,...
'Style','edit',...
'Position',[20 40 210 40],...
'String','');
%focus automatically on textbox
uicontrol(Textbox1);
% Wait for d to close before running to completion
uiwait(d);
function Textbox_callback(Textbox1,event)
ck1.Value = ~ck1.Value;
Textbox2.String = Textbox1.String;
end
end
3 Kommentare
Walter Roberson
am 6 Sep. 2019
Every time you step through, the dialog loses focus, which is the trigger to update the String property.
Adam Danz
am 9 Sep. 2019
Thanks, Walter.
I imagine a callback function that could first change the focus to, say, the main figure, then execute a timer that would copy the string from textbox1 to textbox2 after a fraction of second delay, and then change the focus back to the first textbox. That way the focus is changed on each key stroke and the delayed timer, if timed properly, could do the copy-paste work after the trigger, while the focus is returned to the main textbox.
Akzeptierte Antwort
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Migrate GUIDE Apps finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!