wxChoice :: SetString () Ошибка индекса - PullRequest
0 голосов
/ 24 ноября 2011

Наконец-то у меня получилось возиться с элементом управления wxChoice в моем приложении, и по какой-то причине, когда я пытаюсь изменить текст столбца, я получаю сообщение об ошибке:

.... \ src \ msw \ choice.cpp (348): ошибка assert "IsValid (n)" в wxChoice :: SetString (): неверный индекс элемента в wxChoice :: SetString

Сама ошибкаделает совершенно очевидным, что индекс предмета недействителен, но исходя из моего кода и (не очень описательной) документации , мне нужно только установить количество столбцов, тогда я будуразрешено редактировать текст по заданному индексу.

Вот фрагмент из моего проекта:

int phones = Phones->size();
choiceDevice->SetColumns(phones); // Value greater than 0
choiceDevice->SetString(phones - 1, pInstance->ProfileName); // Should assign the last index the value of the ProfileName.

Ответы [ 3 ]

0 голосов
/ 24 ноября 2011

wxChoice :: SetColumns

Примечания:

Это реализовано только для GTK и Motif и ничего не делает на других платформах.

Похоже, SetColumns используется для управления выбором нескольких столбцов, я никогда не видел его. В любом случае, он не добавляет новые элементы в элемент управления. В Windows это ничего не делает в любом случае.

0 голосов
/ 24 ноября 2011

Как сказал Алекс, я не должен использовать wxChoice :: SetColumns в Windows, так как это никак не влияет.Я обнаружил, что мне нужно использовать wxChoice :: Append вместо установки количества столбцов, а затем установки отдельной строки.

0 голосов
/ 24 ноября 2011

Что если Phones пусто и, следовательно, phones == 0?

...