还是找不到原因
附上范例程式码及过程
首先定义cell变量
a{1,1}='A';
a{1,2}='我';
a{2,1}='B';
a{2,2}='你';
并将a另存成a.mat
在GUI内设定两个text分别为text1,text2
在整个GUI的opening function内加入
load('a.mat');
handles.a=a;
以读取cell变量a
并在text1加入一个keypressfunction
其程式码为
currChar = get(handles.figure1,'CurrentCharacter');
a=handles.a;
Key_word = get(handles.edit1,'String');
if isequal(currChar,char(13)) %char(13) == enter key
for i=1:length(a(:,1))
try
b=Key_word;
if strfind(a{i,1},Key_word)==1 && strfind(Key_word,a{i,1})==1
search_result=a(i,2);
set(handles.edit2,'string',search_result{1,1});
vb=actxserver('wscript.shell');
vb.SendKeys('{TAB}');
end
catch
end
end
end
guidata(hObject, handles);
主要目的为在text1上打A(B)并按下enter
可以在text2上显示其对应的值我(你)并同时将打字的闪烁I跳到text2
但结果都是按第一次时,会先将打字的闪烁I跳到text2
而回去按第二次text1 enter时,才会改变成相对应的值
一直搞不懂是什么原因
希望有人能帮我看看这个问题
非常感谢!!!
※ 引述《wsqa (工作要顺利``)》之铭言:
: 各位先进
: 我最近有一个GUI的问题一直持续发生
: 但我又找不到原因
: 就是我在使用breakpoint来debug的时候
: 程式运作很正常,如我想要的状况
: 但是实际在运行GUI
: (使用KeyPressFcn在text里面输入好直接按enter运行)
: 就会跟我有设breakpoint的过程不太一样
: 例:触发KeyPressFcn的callback会开始比较字串是否一样
: 。在GUI运行时,必须按第二次才会进行比对(第一次好像会读到空的??)
: 。而在breakpoint的状态,则是直接就会进行比对
: 请问这可能是哪个地方出问题了呢
: 谢谢