johnlove9527 发表于 2011-9-23 10:30:48

请教关于listbox控件多选单选问题

我做了一个界面上有一个listbox和一个check控件,想实现点击check则listbox支持多选,取消则支持单选,我代码如下
if get(handles.checkbox4,'Value')==1
    set(handles.listbox4,'Max',5);
else
    set(handles.listbox4,'Max',1);
end
现在问题出来了。我勾选check后,发现可以,但是如果当时我listbox中选中两个选项之后,取消勾选,会出现listbox消失,同时matlab窗口显示
Warning: single-selection listbox control requires a scalar Value
Control will not be rendered until all of its parameter values are valid
字面意思是说,当多选转成单选时,程序就由原来多选变成未选择,而listbox必须需要一个有效的选择,请问如何解决?是否有属性可以设置默认选择第一个选项之类的?
如果要取消勾选前选择一个选项时,再勾选就没问题,说明我思路还是对的。不知道如何解决这个问题。
在线等。大家有经验的讨论讨论。

hhucy 发表于 2011-9-24 00:35:32

这个还是根据实际情况讨论

johnlove9527 发表于 2011-9-24 22:57:17

hhucy 发表于 2011-9-24 00:35 static/image/common/back.gif
这个还是根据实际情况讨论

什么意思。我这个还不够实际情况。

qibbxxt 发表于 2011-9-26 16:14:12

johnlove9527 发表于 2011-9-24 22:57 static/image/common/back.gif
什么意思。我这个还不够实际情况。

if get(hObject,'value') == 1
    set(handles.listbox1,'Max',5);
else
    set(handles.listbox1,'Max',1);
    set(handles.listbox1,'Value',1) ;
end改成这样就可以了,然后初始化让checkbox1的值为0

johnlove9527 发表于 2011-9-27 10:16:04

qibbxxt 发表于 2011-9-26 16:14 static/image/common/back.gif
改成这样就可以了,然后初始化让checkbox1的值为0

OK了。原来这么简单,设置选择第一个选项即可。哈哈。谢谢斑竹
页: [1]
查看完整版本: 请教关于listbox控件多选单选问题