Show / Hide Table of Contents

# Class Responder

Responder base class implemented by objects that want to participate on keyboard and mouse input.

##### Inheritance

System.Object
Responder
View

##### Implements

System.IDisposable

##### Inherited Members

System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()

###### Namespace: Terminal.Gui

###### Assembly: Terminal.Gui.dll

##### Syntax

    public class Responder : IDisposable

### Properties

#### CanFocus

Gets or sets a value indicating whether this Responder can focus.

##### Declaration

    public virtual bool CanFocus { get; set; }

##### Property Value

Type | Description
--- | ---
System.Boolean | `true` if can focus; otherwise, `false`.

#### HasFocus

Gets or sets a value indicating whether this Responder has focus.

##### Declaration

    public virtual bool HasFocus { get; }

##### Property Value

Type | Description
--- | ---
System.Boolean | `true` if has focus; otherwise, `false`.

### Methods

#### Dispose()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resource.

##### Declaration

    public void Dispose()

#### Dispose(Boolean)

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

##### Declaration

    protected virtual void Dispose(bool disposing)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Boolean | disposing |

##### Remarks

If disposing equals true, the method has been called directly or indirectly by a user's code. Managed and unmanaged resources can be disposed. If disposing equals false, the method has been called by the runtime from inside the finalizer and you should not reference other objects. Only unmanaged resources can be disposed.

#### MouseEvent(MouseEvent)

Method invoked when a mouse event is generated

##### Declaration

    public virtual bool MouseEvent(MouseEvent mouseEvent)

##### Parameters

Type | Name | Description
--- | --- | ---
MouseEvent | mouseEvent | Contains the details about the mouse event.

##### Returns

Type | Description
--- | ---
System.Boolean | `true`, if the event was handled, `false` otherwise.

#### OnEnter(View)

Method invoked when a view gets focus.

##### Declaration

    public virtual bool OnEnter(View view)

##### Parameters

Type | Name | Description
--- | --- | ---
View | view | The view that is losing focus.

##### Returns

Type | Description
--- | ---
System.Boolean | `true`, if the event was handled, `false` otherwise.

#### OnKeyDown(KeyEvent)

Method invoked when a key is pressed.

##### Declaration

    public virtual bool OnKeyDown(KeyEvent keyEvent)

##### Parameters

Type | Name | Description
--- | --- | ---
KeyEvent | keyEvent | Contains the details about the key that produced the event.

##### Returns

Type | Description
--- | ---
System.Boolean | true if the event was handled

#### OnKeyUp(KeyEvent)

Method invoked when a key is released.

##### Declaration

    public virtual bool OnKeyUp(KeyEvent keyEvent)

##### Parameters

Type | Name | Description
--- | --- | ---
KeyEvent | keyEvent | Contains the details about the key that produced the event.

##### Returns

Type | Description
--- | ---
System.Boolean | true if the event was handled

#### OnLeave(View)

Method invoked when a view loses focus.

##### Declaration

    public virtual bool OnLeave(View view)

##### Parameters

Type | Name | Description
--- | --- | ---
View | view | The view that is getting focus.

##### Returns

Type | Description
--- | ---
System.Boolean | `true`, if the event was handled, `false` otherwise.

#### OnMouseEnter(MouseEvent)

Method invoked when a mouse event is generated for the first time.

##### Declaration

    public virtual bool OnMouseEnter(MouseEvent mouseEvent)

##### Parameters

Type | Name | Description
--- | --- | ---
MouseEvent | mouseEvent |

##### Returns

Type | Description
--- | ---
System.Boolean | `true`, if the event was handled, `false` otherwise.

#### OnMouseLeave(MouseEvent)

Method invoked when a mouse event is generated for the last time.

##### Declaration

    public virtual bool OnMouseLeave(MouseEvent mouseEvent)

##### Parameters

Type | Name | Description
--- | --- | ---
MouseEvent | mouseEvent |

##### Returns

Type | Description
--- | ---
System.Boolean | `true`, if the event was handled, `false` otherwise.

#### ProcessColdKey(KeyEvent)

This method can be overwritten by views that want to provide accelerator functionality (Alt-key for example), but without interefering with normal ProcessKey behavior.

##### Declaration

    public virtual bool ProcessColdKey(KeyEvent keyEvent)

##### Parameters

Type | Name | Description
--- | --- | ---
KeyEvent | keyEvent | Contains the details about the key that produced the event.

##### Returns

Type | Description
--- | ---
System.Boolean |

##### Remarks

After keys are sent to the subviews on the current view, all the view are processed and the key is passed to the views to allow some of them to process the keystroke as a cold-key.

This functionality is used, for example, by default buttons to act on the enter key. Processing this as a hot-key would prevent non-default buttons from consuming the enter keypress when they have the focus.

#### ProcessHotKey(KeyEvent)

This method can be overwritten by view that want to provide accelerator functionality (Alt-key for example).

##### Declaration

    public virtual bool ProcessHotKey(KeyEvent kb)

##### Parameters

Type | Name | Description
--- | --- | ---
KeyEvent | kb |

##### Returns

Type | Description
--- | ---
System.Boolean |

##### Remarks

Before keys are sent to the subview on the current view, all the views are processed and the key is passed to the widgets to allow some of them to process the keystroke as a hot-key.

For example, if you implement a button that has a hotkey ok "o", you would catch the combination Alt-o here. If the event is caught, you must return true to stop the keystroke from being dispatched to other views.

#### ProcessKey(KeyEvent)

If the view is focused, gives the view a chance to process the keystroke.

##### Declaration

    public virtual bool ProcessKey(KeyEvent keyEvent)

##### Parameters

Type | Name | Description
--- | --- | ---
KeyEvent | keyEvent | Contains the details about the key that produced the event.

##### Returns

Type | Description
--- | ---
System.Boolean |

##### Remarks

Views can override this method if they are interested in processing the given keystroke. If they consume the keystroke, they must return true to stop the keystroke from being processed by other widgets or consumed by the widget engine. If they return false, the keystroke will be passed using the ProcessColdKey method to other views to process.

The View implementation does nothing but return false, so it is not necessary to call base.ProcessKey if you derive directly from View, but you should if you derive other View subclasses.

### Implements

System.IDisposable