Can I use restriction of selections in multiple mode in listdlg?

4 Ansichten (letzte 30 Tage)
Varun Jadhav
Varun Jadhav am 19 Aug. 2016
Beantwortet: TED MOSBY am 21 Aug. 2025 um 6:12
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

Antworten (1)

TED MOSBY
TED MOSBY am 21 Aug. 2025 um 6:12
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.

Kategorien

Mehr zu App Building finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by