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

クリックを2回クリックするだけで目的を破ることができます。編集ボックスをクリックしたときにテキストをハイライト表示させる方法を知っていますか? – dewalla

+0

ありがとうございますが、簡単にはできないようです。下記の答えを見てください – dewalla

1

はクリス、あなたはのButtonDownFcnを実現するためにUicontrolの境界内をクリックするんです。 をクリックすると表示されません。編集ボックス

0

さて、私は問題を解決しており、完璧に動作します!

しかし、私はそれがプロパティインスペクタを開くために

  1. はGUIDE、右クリックでエディットテキストボックスを作成します...それが動作なぜ私は絶対にないアイデアを持っていないので、非常に動揺しています。
  2. が「有効」nammedプロパティを見つけるために、「文字列」プロパティ「HERE TYPEのTEXT」
  3. をテキストを追加し、「非アクティブ」
  4. buttonDownFncを作成し、それを切り替える
  5. (また、プロパティインスペクタで行うことができます)

    機能myEditBoxTagGoesHere_ButtonDownFcn(hObjectは、eventdataの、ハンドル)

    % Toggel ON

    の状態を "有効" :コード次

    使用0

    セット(hObject、 'Enable'、 'On');

    %は

    するuicontrol(handles.myEditBoxTagGoesHere)UIコントロールを作成します。

マウスをクリックしたときにuicontrolがテキストをハイライト表示する理由を説明できる人は、素晴らしいと思います!

関連する問題