Can I use restriction of selections in multiple mode in listdlg?
Afficher commentaires plus anciens
Hi,
I am using listdlg to list out a file showing multiple currents outputs.
I always need to select only three currents at a time hence need to give restriction in 'SelectionMode' of 3 to avoid user errors.
This is the function I call when I need to do the assignment of the amplifier.
function listboxMIa_Callback(hObject, eventdata, handles)
CurrentArrayLabel = evalin('base', 'CurrentArrayLabel');
[MI_aheader,~] = listdlg('PromptString',{'Select the current outputs for Channel A:' '(Please select a maximum of 3 outputs)'},...
'Name', 'Amplifier Assignment',...
'ListSize', [250, 125],...
'ListString',CurrentArrayLabel);
assignin('base', 'MI_aheader', MI_aheader);
Is this possible?
Regards,
Varun Jadhav
Réponses (1)
TED MOSBY
le 21 Août 2025
Hi,
As of today, listdlg can only do single vs multiple - it cannot limit the number of selections by itself. You have to manually validate the number of selections.
need = 3;
[idx, ok] = listdlg('PromptString', {sprintf('Select exactly %d items:', need)}, ...
'SelectionMode','multiple', ...
'ListString', CurrentArrayLabel, ...
'ListSize', [250 125], ...
'Name','Amplifier Assignment');
if ~ok, idx = []; return; end
if numel(idx) == need, return; end
uiwait(warndlg(sprintf('Select exactly %d items (you picked %d).', need, numel(idx)), ...
'Invalid selection','modal'));
You may contact MathWorks Technical Support if you want this feature to be added!
Hope it helped.
Catégories
En savoir plus sur App Building 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!