## wxComboBox

A combobox is like a combination of an edit control and a listbox. It can be displayed as static list with editable or read-only text field; or a drop-down list with text field; or a drop-down list without a text field.

A combobox permits a single selection only. Combobox items are numbered from zero.

If you need a customized combobox, have a look at wxComboCtrl, wxOwnerDrawnComboBox, wxComboPopup and the ready-to-use wxBitmapComboBox.

Derived from

wxControlWithItems
wxControl
wxWindow
wxEvtHandler
wxObject

Include files

<wx/combobox.h>

Window styles

wxCB_SIMPLE | Creates a combobox with a permanently displayed list. Windows only.
wxCB_DROPDOWN | Creates a combobox with a drop-down list.
wxCB_READONLY | Same as wxCB_DROPDOWN but only the strings specified as the combobox choices can be selected, it is impossible to select (even from a program) a string which is not in the choices list.
wxCB_SORT | Sorts the entries in the list alphabetically.
wxTE_PROCESS_ENTER | The control will generate the event wxEVT_COMMAND_TEXT_ENTER (otherwise pressing Enter key is either processed internally by the control or used for navigation between dialog controls). Windows only.

See also window styles overview.

Event handling

EVT_COMBOBOX(id, func) | Process a wxEVT_COMMAND_COMBOBOX_SELECTED event, when an item on the list is selected. Note that calling GetValue returns the new value of selection.
EVT_TEXT(id, func) | Process a wxEVT_COMMAND_TEXT_UPDATED event, when the combobox text changes.
EVT_TEXT_ENTER(id, func) | Process a wxEVT_COMMAND_TEXT_ENTER event, when <RETURN> is pressed in the combobox.

See also

wxListBox, wxTextCtrl, wxChoice, wxCommandEvent

Members

wxComboBox::wxComboBox
wxComboBox::~wxComboBox
wxComboBox::Create
wxComboBox::CanCopy
wxComboBox::CanCut
wxComboBox::CanPaste
wxComboBox::CanRedo
wxComboBox::CanUndo
wxComboBox::Copy
wxComboBox::Cut
wxComboBox::GetCurrentSelection
wxComboBox::GetInsertionPoint
wxComboBox::GetLastPosition
wxComboBox::GetSelection
wxComboBox::GetValue
wxComboBox::Paste
wxComboBox::Redo
wxComboBox::Replace
wxComboBox::Remove
wxComboBox::SetInsertionPoint
wxComboBox::SetInsertionPointEnd
wxComboBox::SetSelection
wxComboBox::SetValue
wxComboBox::Undo

### wxComboBox::wxComboBox

wxComboBox()

Default constructor.

wxComboBox(wxWindow* parent, wxWindowID id, const wxString& value = "", const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, int n = 0, const wxString choices[] = NULL, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = "comboBox")

wxComboBox(wxWindow* parent, wxWindowID id, const wxString& value, const wxPoint& pos, const wxSize& size, const wxArrayString& choices, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = "comboBox")

Constructor, creating and showing a combobox.

Parameters

parent

Parent window. Must not be NULL.

id

Window identifier. A value of -1 indicates a default value.

value

Initial selection string. An empty string indicates no selection.

pos

Window position.

size

Window size. If the default size (-1, -1) is specified then the window is sized appropriately.

n

Number of strings with which to initialise the control.

choices

An array of strings with which to initialise the control.

style

Window style. See wxComboBox.

validator

Window validator.

name

Window name.

See also

wxComboBox::Create, wxValidator

wxPython note: The wxComboBox constructor in wxPython reduces the `n` and `choices` arguments are to a single argument, which is a list of strings.

wxPerl note: In wxPerl there is just an array reference in place of `n` and `choices`.

### wxComboBox::~wxComboBox

~wxComboBox()

Destructor, destroying the combobox.

### wxComboBox::Create

bool Create(wxWindow* parent, wxWindowID id, const wxString& value = "", const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, int n, const wxString choices[], long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = "comboBox")

bool Create(wxWindow* parent, wxWindowID id, const wxString& value, const wxPoint& pos, const wxSize& size, const wxArrayString& choices, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = "comboBox")

Creates the combobox for two-step construction. Derived classes should call or replace this function. See wxComboBox::wxComboBox for further details.

### wxComboBox::CanCopy

bool CanCopy() const

Returns true if the combobox is editable and there is a text selection to copy to the clipboard. Only available on Windows.

### wxComboBox::CanCut

bool CanCut() const

Returns true if the combobox is editable and there is a text selection to copy to the clipboard. Only available on Windows.

### wxComboBox::CanPaste

bool CanPaste() const

Returns true if the combobox is editable and there is text on the clipboard that can be pasted into the text field. Only available on Windows.

### wxComboBox::CanRedo

bool CanRedo() const

Returns true if the combobox is editable and the last undo can be redone. Only available on Windows.

### wxComboBox::CanUndo

bool CanUndo() const

Returns true if the combobox is editable and the last edit can be undone. Only available on Windows.

### wxComboBox::Copy

void Copy()

Copies the selected text to the clipboard.

### wxComboBox::Cut

void Cut()

Copies the selected text to the clipboard and removes the selection.

### wxComboBox::GetCurrentSelection

int GetCurrentSelection() const

This function does the same things as wxChoice::GetCurrentSelection and returns the item currently selected in the dropdown list if it's open or the same thing as GetSelection otherwise.

### wxComboBox::GetInsertionPoint

long GetInsertionPoint() const

Returns the insertion point for the combobox's text field.

Note: Under wxMSW, this function always returns 0 if the combobox doesn't have the focus.

### wxComboBox::GetLastPosition

virtual wxTextPos GetLastPosition() const

Returns the last position in the combobox text field.

### wxComboBox::GetSelection

void GetSelection(long *from, long *to) const

This is the same as wxTextCtrl::GetSelection for the text control which is part of the combobox. Notice that this is a different method from wxControlWithItems::GetSelection.

Currently this method is only implemented in wxMSW and wxGTK.

### wxComboBox::GetValue

wxString GetValue() const

Returns the current value in the combobox text field.

### wxComboBox::Paste

void Paste()

Pastes text from the clipboard to the text field.

### wxComboBox::Redo

void Redo()

Redoes the last undo in the text field. Windows only.

### wxComboBox::Replace

void Replace(long from, long to, const wxString& text)

Replaces the text between two positions with the given text, in the combobox text field.

Parameters

from

The first position.

to

The second position.

text

The text to insert.

### wxComboBox::Remove

void Remove(long from, long to)

Removes the text between the two positions in the combobox text field.

Parameters

from

The first position.

to

The last position.

### wxComboBox::SetInsertionPoint

void SetInsertionPoint(long pos)

Sets the insertion point in the combobox text field.

Parameters

pos

The new insertion point.

### wxComboBox::SetInsertionPointEnd

void SetInsertionPointEnd()

Sets the insertion point at the end of the combobox text field.

### wxComboBox::SetSelection

void SetSelection(long from, long to)

Selects the text between the two positions, in the combobox text field.

Parameters

from

The first position.

to

The second position.

wxPython note: This method is called `SetMark` in wxPython, `SetSelection` name is kept for wxControlWithItems::SetSelection.

### wxComboBox::SetValue

void SetValue(const wxString& text)

Sets the text for the combobox text field.

NB: For a combobox with `wxCB_READONLY` style the string must be in the combobox choices list, otherwise the call to SetValue() is ignored.

Parameters

text

The text to set.

### wxComboBox::Undo

void Undo()

Undoes the last edit in the text field. Windows only.