Чтобы свойство ListboxTop
имело эффект, пользовательский интерфейс должен быть перерисован (с использованием drawnow
) после добавления элементов в список.
Пример, использование GUIDE с одним тегом списка.как listbox1
:
В графическом интерфейсе OpeningFcn
напишите
handles.t = timer('BusyMode', 'drop', 'ExecutionMode',...
'fixedRate', 'StartDelay', 4, 'Period', 4.0, 'TimerFcn', {@addItem, hObject});
handles.ctr = 0;
handles.t.start();
guidata(hObject, handles);
В конце добавьте
function addItem(hObject, EventData, parentO)
handles = guidata(parentO);
handles.ctr = handles.ctr + 1;
handles.listbox1.String{end+1} = sprintf('Item %i', handles.ctr);
drawnow
handles.listbox1.ListboxTop = numel(handles.listbox1.String) ;
guidata(parentO, handles);
Обратите внимание, что при раскомментировании drawnow
строка, список всегда будет переходить к выбранному элементу (первый по умолчанию).