2012-01-05 2 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

+0

고마워.하지만 쉽게 할 수없는 것처럼 보인다. 아래 답변보기 – dewalla

1

크리스, 당신은 ButtonDownFcn이 일어날 수 있도록하기 위해 uicontrol 국경을 클릭있어. 안에 편집 상자를 클릭하면 발생하지 않습니다.

0

좋아요, 그래서 문제에 대한 해결책을 가지고 있으며 완벽하게 작동합니다!

그러나, 나는 그것이 속성 관리자를 엽니 다에

  1. 가이드 및 마우스 오른쪽 버튼으로 클릭에 편집 텍스트 상자 만들기 ... 작동 왜 내가 전혀 생각이 없기 때문에 매우 화가입니다.
  2. 는 "사용"nammed 속성을 찾을 수있는 "문자열"속성 "여기에 텍스트를 입력"
  3. 텍스트를 추가하고 "비활성"
  4. buttonDownFnc 만들기로 전환
  5. (또한 속성 관리자에서 수행 할 수 있습니다)

    를 사용하여 다음 코드를

    기능 myEditBoxTagGoesHere_ButtonDownFcn은 (hObject는 EVENTDATA는, 핸들)

    퍼센트 Toggel ON

    에 "사용"상태 0

    세트 (hObject, 'Enable', 'On');

    %은 UI 제어

    uicontrol (handles.myEditBoxTagGoesHere)을 만들고;

누군가가 uicontrol이 마우스 왼쪽 클릭으로 텍스트를 강조하는 이유를 설명 할 수 있다면 좋을 것입니다.

관련 문제