Multiple choices in a listbox

I want to select multiple elements of a listbox and show them in another one. How can i do this in a simple way?
thanks

 Réponse acceptée

Matt Fig
Matt Fig le 31 Mai 2011

1 vote

If you set 'min' to 0 and 'max' to 10, you will be able to select multiple strings. Once you have that you can get the choices by:
C = get(U,{'string','value'})
C = C{1}(C{2})
Then set the 'string' property of the other listbox to C.

2 commentaires

Nuno Fernandes
Nuno Fernandes le 31 Mai 2011
I already knew that part of 'set '...min' to 0 and 'max' to 10...'. Now i can't save the selected elements to a matrix and then show them on other listbox...
Matt Fig
Matt Fig le 1 Juin 2011
Interesting, it seems to work for me...
U = uicontrol('style','listbox',...
'units','pix',...
'string',{'Poodle';'stubb';'false';'together';'spanish'},...
'pos',[10 10 50 100],...
'min',0,'max',10,...
'callback',['C = get(gcbo,{''string'',''value''});',...
'set(U(2),''string'',C{1}(C{2}))'])
U(2) = uicontrol('style','listbox',...
'units','pix',...
'string','',...
'pos',[80 10 50 100],'min',0,'max',10)

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 31 Mai 2011

0 votes

Set the 'Max' property of the listbox to be at least 2 greater than the 'Min' property. You will then be able to select multiple items in the usual ways (e.g., click-and-drag or control-click or as appropriate for your OS.) The listbox Value property will return an array of the indices of all the currently selected entries.
Note: the Callback will be called every time the selection changes, so if you are adding entries one by one using control or alt, then multiple callbacks will be generated.

3 commentaires

Nuno Fernandes
Nuno Fernandes le 1 Juin 2011
Thanks for help. I already knew how to select multiple elements from a listbox. Now i want to save the selected elements to a matrix or anything like that and then show them in another listbox. Do you have any ideas how to do this?
Matt Fig
Matt Fig le 1 Juin 2011
See the example I show above...
P
P le 5 Sep 2012
Have you tried using the 'handles' structure to save the data in the callback of the first listbox and then displaying using a callback for the second listbox?

Connectez-vous pour commenter.

Catégories

En savoir plus sur Startup and Shutdown dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by