Problem in retreiveng textbox string in uicontrol created dialog
조회 수: 1 (최근 30일)
이전 댓글 표시
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
Walter Roberson
2019년 9월 6일
Every time you step through, the dialog loses focus, which is the trigger to update the String property.
Adam Danz
2019년 9월 9일
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.
채택된 답변
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Migrate GUIDE Apps에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!