MATLAB Answers

Enable / Disable specific listbox item

40 views (last 30 days)
Dan on 13 Oct 2014
Commented: Andy on 23 Oct 2020 at 11:57
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.


Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 13 Oct 2014
You can't do that. The workarounds are the two you listed.


Sign in to comment.

More Answers (1)

Robert Cumming
Robert Cumming on 13 Oct 2014
By using this FEX you can make it look like things are disabled:
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} )
function checkcb ( obj, event, allowed )
if allowed(obj.Value) == 0
errordlg ( 'Not allowed' );
obj.Value = find ( allowed, 1, 'first' );
See example image:


Dan on 13 Oct 2014
Intriguing..... I'll give it a shot! thanks!
Afifa Shaikh
Afifa Shaikh on 23 Oct 2020 at 11:33
Matlab is not able to recognize the keyword 'str2html'
Undefined function or variable 'str2html'.
Andy on 23 Oct 2020 at 11:57
See file exchange

Sign in to comment.


Community Treasure Hunt

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

Start Hunting!