I was thinking today about what would be a better trigger to activate buttons: mouse clicked or mouse released. By this I mean, would it be better to have the button do its action when the user clicks their mouse down on it, or when the user releases their mouse on it?
Pros for MouseClicked:
1) Faster reaction to the user clicking the button
Pros for MouseReleased:
1) The user can drag their mouse away from the button if they didn't actually want to click it
I clearly didn't think of very much. Maybe that means it's a stupid topic, but what are you guys' opinions on which one is better?
Action on MouseClicked vs MouseReleased
The standard is to have the action actually happen only on a completed MouseDown and a matching Mouseup. This is important. If a user is Clicks and holds the mouse button down, then drags and releases over a button, the event should not fire off. It should only happen if the button is already in the pressed position.
Additionally to what smasherprog said, also the reverse: If the mouse button is pressed and helf over a button, the user drags the cursor off the button and releases it, the event should also not fire off.
If in doubt, compare with your OS behaviour. People prefer common behaviour.
If in doubt, compare with your OS behaviour. People prefer common behaviour.
The standard is to have the action actually happen only on a completed MouseDown and a matching Mouseup. This is important. If a user is Clicks and holds the mouse button down, then drags and releases over a button, the event should not fire off. It should only happen if the button is already in the pressed position.
Interesting. I knew of the of the problem with clicking and dragging to another button and then releasing, causing the button to activate. I didn't know that what you described was standard. It definitely makes sense, though.
If in doubt, compare with your OS behaviour. People prefer common behaviour.
This is important. If people are used to the mouse behaving a certain way in their OS, if a program comes along and behaves a different way, the end result is user confusion/unhappiness and added support overhead.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement