diff --git a/src/propgrid/property.cpp b/src/propgrid/property.cpp index c6d697681a..fc1a0057fd 100644 --- a/src/propgrid/property.cpp +++ b/src/propgrid/property.cpp @@ -1896,15 +1896,18 @@ wxValidator* wxPGProperty::DoGetValidator() const int wxPGProperty::InsertChoice( const wxString& label, int index, int value ) { wxPropertyGrid* pg = GetGrid(); - int sel = GetChoiceSelection(); - - int newSel = sel; + const int sel = GetChoiceSelection(); if ( index == wxNOT_FOUND ) index = m_choices.GetCount(); - if ( index <= sel ) - newSel++; + int newSel; + if ( sel == wxNOT_FOUND ) + newSel = 0; + else if ( index <= sel ) + newSel = sel + 1; + else + newSel = sel; m_choices.Insert(label, index, value); diff --git a/src/propgrid/props.cpp b/src/propgrid/props.cpp index 422e1f84ca..5697727281 100644 --- a/src/propgrid/props.cpp +++ b/src/propgrid/props.cpp @@ -1102,7 +1102,7 @@ WX_PG_IMPLEMENT_PROPERTY_CLASS(wxEnumProperty, wxPGProperty, wxEnumProperty::wxEnumProperty( const wxString& label, const wxString& name, const wxChar* const* labels, const long* values, int value ) : wxPGProperty(label,name) { - SetIndex(0); + SetIndex(wxNOT_FOUND); if ( labels ) { @@ -1144,7 +1144,7 @@ wxEnumProperty::wxEnumProperty( const wxString& label, const wxString& name, const wxArrayString& labels, const wxArrayInt& values, int value ) : wxPGProperty(label,name) { - SetIndex(0); + SetIndex(wxNOT_FOUND); if ( &labels && labels.size() ) {