# DropdownButton

> Make a button that reacts to mouse down, for displaying your own dropdown content.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor](/engine/6000.0/script-reference/unityeditor.md)
* **Assembly:** UnityEditor

## DropdownButton(GUIContent, FocusType, GUILayoutOption\[])

Make a button that reacts to mouse down, for displaying your own dropdown content.

```csharp
public static bool DropdownButton(GUIContent content, FocusType focusType, params GUILayoutOption[] options)
```

### Parameters

**** (\[GUIContent]\(/engine/6000.0/script-reference/unityengine/guicontent)): Text, image and tooltip for this button.**** (\[FocusType]\(/engine/6000.0/script-reference/unityengine/focustype)): Whether the button should be selectable by keyboard or not.**** (\[GUILayoutOption\[]]\(/engine/6000.0/script-reference/unityengine/guilayoutoption)): An optional list of layout options that specify extra layouting properties. Any values passed in here will override settings defined by the style.\
&#x20;Additional Resources: [GUILayout.Width](/engine/6000.0/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.0/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.0/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.0/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.0/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.0/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.0/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.0/script-reference/unityengine/guilayout/expandheight.md).

### Returns

| Type                                                          | Description                           |
| ------------------------------------------------------------- | ------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | true when the user clicks the button. |

### Remarks

This control does not do anything but returns true on mouse down when clicked, as opposed to regular buttons that return true on mouse up.

This can be used for buttons that should open a [GenericMenu](/engine/6000.0/script-reference/unityeditor/genericmenu.md) or your own custom [EditorWindow](/engine/6000.0/script-reference/unityeditor/editorwindow.md) in dropdown form.

When used with a GenericMenu, use [Dropdown](/engine/6000.0/script-reference/unityeditor/genericmenu/dropdown.md) and pass the same rect to the method as was used for the button, which you can obtain using [GUILayoutUtility.GetLastRect](/engine/6000.0/script-reference/unityengine/guilayoututility/getlastrect.md). Note that this will only return a valid rect when [EditorGUILayout.DropdownButton](/engine/6000.0/script-reference/unityeditor/editorguilayout/dropdownbutton.md) returns false. This happens because the last layout event is not used when the click goes through to open a menu.

When used with a custom EditorWindow, use ShowAsDropdown and pass the same rect to the method as was used for the button, which you can obtain using [GUILayoutUtility.GetLastRect](/engine/6000.0/script-reference/unityengine/guilayoututility/getlastrect.md).

## DropdownButton(GUIContent, FocusType, GUIStyle, GUILayoutOption\[])

Make a button that reacts to mouse down, for displaying your own dropdown content.

```csharp
public static bool DropdownButton(GUIContent content, FocusType focusType, GUIStyle style, params GUILayoutOption[] options)
```

### Parameters

**** (\[GUIContent]\(/engine/6000.0/script-reference/unityengine/guicontent)): Text, image and tooltip for this button.**** (\[FocusType]\(/engine/6000.0/script-reference/unityengine/focustype)): Whether the button should be selectable by keyboard or not.**** (\[GUIStyle]\(/engine/6000.0/script-reference/unityengine/guistyle)): Optional style to use.**** (\[GUILayoutOption\[]]\(/engine/6000.0/script-reference/unityengine/guilayoutoption)): An optional list of layout options that specify extra layouting properties. Any values passed in here will override settings defined by the style.\
&#x20;Additional Resources: [GUILayout.Width](/engine/6000.0/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.0/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.0/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.0/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.0/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.0/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.0/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.0/script-reference/unityengine/guilayout/expandheight.md).

### Returns

| Type                                                          | Description                           |
| ------------------------------------------------------------- | ------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | true when the user clicks the button. |

### Remarks

This control does not do anything but returns true on mouse down when clicked, as opposed to regular buttons that return true on mouse up.

This can be used for buttons that should open a [GenericMenu](/engine/6000.0/script-reference/unityeditor/genericmenu.md) or your own custom [EditorWindow](/engine/6000.0/script-reference/unityeditor/editorwindow.md) in dropdown form.

When used with a GenericMenu, use [Dropdown](/engine/6000.0/script-reference/unityeditor/genericmenu/dropdown.md) and pass the same rect to the method as was used for the button, which you can obtain using [GUILayoutUtility.GetLastRect](/engine/6000.0/script-reference/unityengine/guilayoututility/getlastrect.md). Note that this will only return a valid rect when [EditorGUILayout.DropdownButton](/engine/6000.0/script-reference/unityeditor/editorguilayout/dropdownbutton.md) returns false. This happens because the last layout event is not used when the click goes through to open a menu.

When used with a custom EditorWindow, use ShowAsDropdown and pass the same rect to the method as was used for the button, which you can obtain using [GUILayoutUtility.GetLastRect](/engine/6000.0/script-reference/unityengine/guilayoututility/getlastrect.md).
