The index of an element of a ring depends on its position inside the ring itself and cannot be set alone to alter the index of an element, you must retrieve its label and value (GetLabelFromIndex / GetValueFromIndex), delete it from the ring control (DeleteListItem) and reinsert it in the control at the appropriate index position (InsertListItem). If you need to accomplish it an all alaments of a ring, the easier way is probably to create a list in memory (see List function in the Programmer's toolbox), retrieve all elements of the ring in the list, arrange the list order, delete all existing items from the ring control (ClearListCtrl) and then populate the ring taking the elements from the in-memory list in the correct order.