2012-01-05 379 views

回答

4

至少我的系统中,当我使用如下代码来设置一个用户输入框/窗口

prompt = 'Enter search terms:'; 
dlg_title = 'My input box'; 
num_lines = 1; 
defAns = {'TYPE_SERACH_HERE'}; 

answer = inputdlg(prompt, dlg_title, num_lines, defAns); 

默认的文本TYPE_SEARCH_HERE高亮显示,这样我就可以开始输入用来替换什么我想要的。

编辑或者,如果你有一个现有的uicontrol编辑框,你可以做类似如下:

function hedit = drawbox() 

    hedit = uicontrol('Style', 'edit',... 
     'String', 'deafult',... 
     'Enable', 'inactive',... 
     'Callback', @print_string,... 
     'ButtonDownFcn', @clear); 

end 

function clear(hObj, event) %#ok<INUSD> 

    set(hObj, 'String', '', 'Enable', 'on'); 
    uicontrol(hObj); % This activates the edit box and 
        % places the cursor in the box, 
        % ready for user input. 

end 

function print_string(hObj, event) %#ok<INUSD> 

    get(hObj, 'String') 

end 
+0

好吧,点击两次就失败了。你知道如何在编辑框中点击时突出显示文字吗? – dewalla 2012-01-05 16:37:42

+0

谢谢,但似乎它不能轻易完成。见下面的答案 – dewalla 2012-01-05 16:53:36

1

克里斯,你得在uicontrol边界点击使ButtonDownFcn发生。它不会发生,如果你点击里面编辑框

0

好吧,所以我有一个解决方案的问题,它的工作完美无瑕!

不过,我很不高兴,因为我完全不知道为什么它的工作原理...

  1. 创建指南并右键单击编辑文本框就可以打开属性检查器。
  2. 添加文本“TYPE TEXT HERE”到“串”属性
  3. 查找nammed“启用”的属性,并切换到“不活动”
  4. 创建buttonDownFnc
  5. (可在属性检查器也可以做)

    使用以下代码:

    功能myEditBoxTagGoesHere_ButtonDownFcn(hObject,EVENTDATA,句柄)

    %Toggel “启用” 状态到ON

    set(hObject,'Enable','On');

    %创建UI控制

    uicontrol(handles.myEditBoxTagGoesHere);

如果有人可以解释为什么uicontrol在鼠标左键单击时突出显示文本,那将非常棒!