Button Down fcn for Listbox

13 views (last 30 days)
Max Müller
Max Müller on 13 Aug 2014
Commented: Max Müller on 14 Aug 2014
Hey Guys,
I want to enable the buttondownfcn for my Listbox.Due to the fact that this code works only for the RightMouseButton, i guess the LeftMouseButton has already another fcn.
The Question: Is there a way to "delete" the listbox Callback,so i can use my Callback for every MouseButton ?
function ArithmeticalMeanButton_Callback(hObject, eventdata, handles)
Data = findobj('tag','PlotedShotsListbox');
set(Data,'buttondownfcn',@ClickToChose);
function ClickToChose(gcbo,evendata,handles);
ListboxContent = get(gcbo,'String');
ListboxLine = get(gcbo,'Value');
ChosenLine = ListboxContent(ListboxLine);

Accepted Answer

Yu Jiang
Yu Jiang on 13 Aug 2014
Edited: Yu Jiang on 13 Aug 2014
Hi Max
In MATLAB GUI, a left mouse click triggers the execution of the listbox's Callback function and a right mouse click triggers ButtonDownFcn.
Therefore, if you would like to execute the same callback function from either the left or the right mouse button click, you may need to assign your function ClickToChose to both the 'ButtonDownFcn' and the 'calllback'.
That is to say, in the function ArithmeticalMeanButton_Callback, you may need to add the following line
set(Data,'callback',@ClickToChose);
More details of the ListBox component can be found here
A good example showing how to use ListBox can be seen via the following link
In addition, I have noiced that you use findobj to get the handle of 'PlotedShotsListBox'. Have you considered directly obtain that from handles structure? For example, you may change the line
Data = findobj('tag','PlotedShotsListbox');
to
Data = handles.PlotedShotsListbox;
This might be able to improve the efficiency of your code.
-Yu
  3 Comments
Yu Jiang
Yu Jiang on 14 Aug 2014
Edited: Yu Jiang on 14 Aug 2014
You are welcome and please free feel to post more questions, if any.
You can find the detailed documentation regarding MATLAB handle classes via the following link
I would suggest you go through the examples on that webpage.
Since the handle class is part of the Object-Oriented Design in MATLAB, you may want to read the introduction to it at the following address
You can also find a good tutorial video there.
-Yu Jiang
Max Müller
Max Müller on 14 Aug 2014
Boom...that stuff is gold worth...thank...

Sign in to comment.

More Answers (0)

Categories

Find more on Interactive Control and Callbacks in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!