Enable / Disable specific listbox item
14 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Is there a way to disable an item in a listbox. Basically I want to have a listbox that displays a number of available items for selection but want a subset of these items to be greyed out (disabled).
I can (of course) just check for the forbidden item AFTER the user has selected it and tell him that this item is unavailable. But that seems in elegant. Alternatively, I could simply not list forbidden items to begin with but.... also inelegant.
Ideas?
Thanks!
Dan
0 Commenti
Risposta accettata
Più risposte (2)
Robert Cumming
il 13 Ott 2014
function test
myStr{1} = 'Allowed';
myStr{2} = str2html ( 'Not Allowed', 'italic', true, 'colour', '#A0A0A0' );
myStr{3} = 'Allowed';
myStr{4} = 'Allowed';
myStr{5} = 'Allowed';
allowed = [1 0 1 1 1]; % flags of items allowed or not.
uicontrol ( 'style', 'listbox', 'position', [0 0 400 200], 'String', myStr, 'Callback', {@checkcb allowed} )
end
function checkcb ( obj, event, allowed )
if allowed(obj.Value) == 0
errordlg ( 'Not allowed' );
obj.Value = find ( allowed, 1, 'first' );
end
end
See example image:
%
3 Commenti
Afifa Shaikh
il 23 Ott 2020
Matlab is not able to recognize the keyword 'str2html'
Undefined function or variable 'str2html'.
Andy
il 23 Ott 2020
See file exchange
https://uk.mathworks.com/matlabcentral/fileexchange/46755-str2html?s_tid=srchtitle
Amos
il 18 Apr 2023
Modificato: Amos
il 18 Apr 2023
As of 2023a, there still isn't (yet?) an enable-state vector, but:
On styling, further to Robert Cummings answer above, and from §Version History: https://au.mathworks.com/help/matlab/ref/matlab.ui.control.dropdown-properties.html
"R2023a: Style drop-down component items
Create styles for drop-down components using the uistyle function, and add the styles to individual items or entire drop-down components using the addStyle function."
On behaviour, (not new, but for completeness) it's then easy, if clumsy, to disregard/reverse selection using ValueChangedFcn and event.PreviousValue (above link: §Callbacks).
When the visual cue doesn't disuade selection, one hopes that user-adaptation follows quickly. The facility to programmatically re-open the droplist could be useful here, but expect item-level enable-state control would be much higher on everyone's wishlists.
0 Commenti
Vedere anche
Categorie
Scopri di più su Environment and Settings in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!