![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/191905/image.jpeg)
How to select different options in the same listbox and save to thier respective variables?
2 views (last 30 days)
Show older comments
Vinayak Appasaheb Bhatte
on 12 Jul 2018
Commented: Adam Danz
on 20 Jul 2018
I want to select 3 different items from the same list box and save it to 3 different handles.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/191876/image.png)
opt1 = handles.opt1;
opt2 = handles.opt2;
opt3 = handles.opt3;
opt = [opt1,opt2,opt3];
But when I select three different strings, I get only the 'opt3' as 'opt' output. I don't want to create 3 list boxes for the same options and make the GUI look messy. How do I do it? Please Help
0 Comments
Accepted Answer
Adam Danz
on 12 Jul 2018
Edited: Adam Danz
on 13 Jul 2018
The example below shows how to isolate the selected items using the callback function to the listbox. If you produced the listbox using GUIDE, focus on the callback function in my example and skip the first half that produces the listbox.
% Create listbox
function myList
c = dialog();
listbox1 = uicontrol('Parent',c,...
'Style','listbox',...
'Position',[90 90 100 100],...
'Min', 0, ...
'Max',3,...
'String',{'Lancaster', 'Cincinnati', 'Sofia', 'Rochester'},...
'Callback', @listbox1_Callback);
% Callback function
function listbox1_Callback(hObject, eventdata)
mySelection = hObject.String(hObject.Value);
if length(mySelection)<3
return
end
opt1 = mySelection{1};
opt2 = mySelection{2};
opt3 = mySelection{3};
*Note that you'll need to adapt the callback function if the user is allowed to select less or more than 3 options.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/191905/image.jpeg)
14 Comments
More Answers (0)
See Also
Categories
Find more on Interactive Control and Callbacks in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!