\section{\class{wxChoice}}\label{wxchoice} A choice item is used to select one of a list of strings. Unlike a listbox, only the selection is visible until the user pulls down the menu of choices. \wxheading{Derived from} \helpref{wxControl}{wxcontrol}\\ \helpref{wxWindow}{wxwindow}\\ \helpref{wxEvtHandler}{wxevthandler}\\ \helpref{wxObject}{wxobject} \wxheading{Include files} \wxheading{Window styles} There are no special styles for wxChoice. See also \helpref{window styles overview}{windowstyles}. \wxheading{Event handling} \twocolwidtha{7cm} \begin{twocollist}\itemsep=0pt \twocolitem{{\bf EVT\_CHOICE(id, func)}}{Process a wxEVT\_COMMAND\_CHOICE\_SELECTED event, when an item on the list is selected.} \end{twocollist} \wxheading{See also} \helpref{wxListBox}{wxlistbox}, \helpref{wxComboBox}{wxcombobox}, \rtfsp\helpref{wxCommandEvent}{wxcommandevent} \latexignore{\rtfignore{\wxheading{Members}}} \membersection{wxChoice::wxChoice}\label{wxchoiceconstr} \func{}{wxChoice}{\void} Default constructor. \func{}{wxChoice}{\param{wxWindow *}{parent}, \param{wxWindowID}{ id},\rtfsp \param{const wxPoint\& }{pos}, \param{const wxSize\&}{ size},\rtfsp \param{int}{ n}, \param{const wxString }{choices[]},\rtfsp \param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = ``choice"}} Constructor, creating and showing a choice. \wxheading{Parameters} \docparam{parent}{Parent window. Must not be NULL.} \docparam{id}{Window identifier. A value of -1 indicates a default value.} \docparam{pos}{Window position.} \docparam{size}{Window size. If the default size (-1, -1) is specified then the choice is sized appropriately.} \docparam{n}{Number of strings with which to initialise the choice control.} \docparam{choices}{An array of strings with which to initialise the choice control.} \docparam{style}{Window style. See \helpref{wxChoice}{wxchoice}.} \docparam{validator}{Window validator.} \docparam{name}{Window name.} \wxheading{See also} \helpref{wxChoice::Create}{wxchoicecreate}, \helpref{wxValidator}{wxvalidator} \pythonnote{The wxChoice constructor in wxPython reduces the \tt{n} and \tt{choices} arguments are to a single argument, which is a list of strings.} \membersection{wxChoice::\destruct{wxChoice}} \func{}{\destruct{wxChoice}}{\void} Destructor, destroying the choice item. \membersection{wxChoice::Append}\label{wxchoiceappend} \func{void}{Append}{\param{const wxString\& }{ item}} Adds the item to the end of the choice control. \func{void}{Append}{\param{const wxString\& }{ item}, \param{void* }{clientData}} Adds the item to the end of the combobox, associating the given data with the item. \wxheading{Parameters} \docparam{item}{String to add.} \docparam{clientData}{Client data to associate with the item.} \membersection{wxChoice::Clear}\label{wxchoiceclear} \func{void}{Clear}{\void} Clears the strings from the choice item. \membersection{wxChoice::Create}\label{wxchoicecreate} \func{bool}{Create}{\param{wxWindow *}{parent}, \param{wxWindowID}{ id},\rtfsp \param{const wxPoint\& }{pos}, \param{const wxSize\&}{ size},\rtfsp \param{int}{ n}, \param{const wxString }{choices[]},\rtfsp \param{long}{ style = 0}, \param{const wxString\& }{name = ``choice"}} Creates the choice for two-step construction. See \helpref{wxChoice::wxChoice}{wxchoiceconstr}. \membersection{wxChoice::FindString}\label{wxchoicefindstring} \constfunc{int}{FindString}{\param{const wxString\& }{string}} Finds a choice matching the given string. \wxheading{Parameters} \docparam{string}{String to find.} \wxheading{Return value} Returns the position if found, or -1 if not found. \membersection{wxChoice::GetColumns}\label{wxchoicegetcolumns} \constfunc{int}{GetColumns}{\void} Gets the number of columns in this choice item. \wxheading{Remarks} This is implemented for Motif only. \membersection{wxChoice::GetClientData}\label{wxchoicegetclientdata} \constfunc{void*}{GetClientData}{\param{int}{ n}} Returns a pointer to the client data associated with the given item (if any). \wxheading{Parameters} \docparam{n}{An item, starting from zero.} \wxheading{Return value} A pointer to the client data, or NULL if the item was not found. \membersection{wxChoice::GetSelection}\label{wxchoicegetselection} \constfunc{int}{GetSelection}{\void} Gets the id (position) of the selected string, or -1 if there is no selection. \membersection{wxChoice::GetString}\label{wxchoicegetstring} \constfunc{wxString}{GetString}{\param{int}{ n}} Returns the string at the given position. \wxheading{Parameters} \docparam{n}{The zero-based position.} \wxheading{Return value} The string at the given position, or the empty string if {\it n} is invalid. \membersection{wxChoice::GetStringSelection}\label{wxchoicegetstringselection} \constfunc{wxString}{GetStringSelection}{\void} Gets the selected string, or the empty string if no string is selected. \membersection{wxChoice::Number}\label{wxchoicenumber} \constfunc{int}{Number}{\void} Returns the number of strings in the choice control. \membersection{wxChoice::SetClientData}\label{wxchoicesetclientdata} \func{void}{SetClientData}{\param{int}{ n}, \param{void* }{data}} Associates the given client data pointer with the given item. \wxheading{Parameters} \docparam{n}{The zero-based item.} \docparam{data}{The client data.} \membersection{wxChoice::SetColumns}\label{wxchoicesetcolumns} \func{void}{SetColumns}{\param{int}{ n = 1}} Sets the number of columns in this choice item. \wxheading{Parameters} \docparam{n}{Number of columns.} \wxheading{Remarks} This is implemented for Motif only. \membersection{wxChoice::SetSelection}\label{wxchoicesetselection} \func{void}{SetSelection}{\param{int}{ n}} Sets the choice by passing the desired string position. This does not cause a wxEVT\_COMMAND\_CHOICE\_SELECTED event to get emitted. \wxheading{Parameters} \docparam{n}{The string position to select, starting from zero.} \wxheading{See also} \helpref{wxChoice::SetStringSelection}{wxchoicesetstringselection} \membersection{wxChoice::SetStringSelection}\label{wxchoicesetstringselection} \func{void}{SetStringSelection}{\param{const wxString\& }{ string}} Sets the choice by passing the desired string. This does not cause a wxEVT\_COMMAND\_CHOICE\_SELECTED event to get emitted. \wxheading{Parameters} \docparam{string}{The string to select.} \wxheading{See also} \helpref{wxChoice::SetSelection}{wxchoicesetselection}