How do I update a listbox with the strings which I enter using a inputdlg command? I tried the same, but when I enter the second string, the first string gets replaced by the new one.

17 次查看(过去 30 天)
I have entered the below code in the corresponding function. prompt={'Please enter the component name:'}; name='Input Component Name'; numlines=1; defaultanswer={'geometry'}; handles.answer=inputdlg(prompt,name,numlines,defaultanswer,'on'); set(handles.componentlistbox,'String',handles.answer);
My objective is, everytime when the dialogbox asks me to enter a text, the entered text should get added in the listbox in addition to the already typed text.I am using a GUIDE gui for this task. Problems I face: Each time I enter a string in the input dialog box, the previously entered string disappears. I would like to add the newly typed string below the existing string. Kindly request your support.

采纳的回答

Geoff Hayes
Geoff Hayes 2014-7-11
All you need to do is append the new string to the existing list
% prompt the user for some input
answer = inputdlg(prompt,name,numlines,defaultanswer,'on');
% get the current list box selections
selections = get(handles.componentlistbox,'String');
% append the answer to the list
selections = [selections ; answer];
% update the list box with the new selection
set(handles.componentlistbox,'String',selections);
Note that in the above, the answer is not being saved to handles.answer as that duplicates what is in the list box.
Note also that you should put in a check of some kind to ensure that duplicate entries aren't added to the list.
Try the above and see what happens!

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Interactive Control and Callbacks 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by