Contents Up Previous Next

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

id

value

pos

size

n

choices

style

validator

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

to

text


wxComboBox::Remove

void Remove(long from, long to)

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

Parameters

from

to


wxComboBox::SetInsertionPoint

void SetInsertionPoint(long pos)

Sets the insertion point in the combobox text field.

Parameters

pos


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

to

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


wxComboBox::Undo

void Undo()

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