displays as expr, evaluating actioni whenever "eventi" occurs in connection with expr.

Details and Options

  • Standard mouse-related event specifications include:
  • "MouseClicked"mouse clicked without moving
    {"MouseClicked",i}mouse button i clicked without moving
    "MouseDown"primary mouse button depressed
    {"MouseDown",i}mouse button i depressed
    "MouseDragged"mouse moving with primary button depressed
    {"MouseDragged",i}mouse moving with button i depressed
    "MouseMoved"mouse moves in the region defined by expr
    "MouseUp"primary mouse button released
    {"MouseUp",i}mouse button i released
  • For mouse events, EventHandler[expr, ] handles events for which the mouse is within the rectangular region defined by the display of expr.
  • Standard keyboard-related event specifications include:
  • "KeyDown"any key on the keyboard depressed
    {"KeyDown","x"}key x depressed
    "ReturnKeyDown" or key depressed
    "EscapeKeyDown" key depressed
    "LeftArrowKeyDown"left arrow key depressed
    "RightArrowKeyDown"right arrow key depressed
    "UpArrowKeyDown"up arrow key depressed
    "DownArrowKeyDown"down arrow key depressed
  • Standard interface events include:
  • {"MenuCommand","name"}menu command with specified name chosen
    "WindowClose"closing of window requested
  • If functions like MousePosition or CurrentValue are evaluated in a particular actioni, the values they give are those associated with the event that triggered that actioni.
  • When EventHandler expressions are nested, events are by default shared by all the expressions, with the innermost expression operating first on a particular event.
  • The following options can be given:
  • Method "Preemptive"the evaluation method to use
    PassEventsDown Automaticwhether to pass events to inner event handlers
    PassEventsUp Truewhether to pass events to outer event handlers
  • Typical possible settings for the Method option include "Preemptive" and "Queued".
  • With the default setting PassEventsDown->Automatic, events handled by an EventHandler are not also passed to built-in event handlers in the Wolfram System front end.


open allclose all

Basic Examples  (3)

Create text that turns red when clicked:

Create text that toggles between red and green when clicked repeatedly:

Scope  (1)

Create a graphic that changes color when clicked:

Create a graphic that changes color only while the mouse button is pressed:

Options  (5)

Method  (1)

By default, event handlers are evaluated on a preemptive link and time out after 5 seconds:

Use Method->"Queued" to evaluate button functions on the main link, which never times out:

PassEventsDown  (2)

Allow events to pass down to inner event handlers, changing the color as well as position:

Do not pass mouse events to the inner event handler:

PassEventsUp  (2)

By default, nested EventHandler actions are triggered upon the specified action:

By disabling PassEventsUp, prevent the outer EventHandler action from being triggered:

Allow the outer EventHandler action when the key is pressed:

Applications  (2)

Automatically fit a line to a set of points:

Piecewise interpolation through a set of points:

Properties & Relations  (1)

EventHandler can be used with MousePosition:

Wolfram Research (2007), EventHandler, Wolfram Language function, https://reference.wolfram.com/language/ref/EventHandler.html (updated 2008).


Wolfram Research (2007), EventHandler, Wolfram Language function, https://reference.wolfram.com/language/ref/EventHandler.html (updated 2008).


Wolfram Language. 2007. "EventHandler." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2008. https://reference.wolfram.com/language/ref/EventHandler.html.


Wolfram Language. (2007). EventHandler. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/EventHandler.html


@misc{reference.wolfram_2024_eventhandler, author="Wolfram Research", title="{EventHandler}", year="2008", howpublished="\url{https://reference.wolfram.com/language/ref/EventHandler.html}", note=[Accessed: 20-July-2024 ]}


@online{reference.wolfram_2024_eventhandler, organization={Wolfram Research}, title={EventHandler}, year={2008}, url={https://reference.wolfram.com/language/ref/EventHandler.html}, note=[Accessed: 20-July-2024 ]}