wxChoice :: SetString()索引错误

时间:2011-11-24 10:24:08

标签: c++ visual-c++ wxwidgets

我终于在我的应用程序中弄乱了wxChoice控件,出于某种原因,每当我尝试修改列的文本时,我都会收到错误:

  

.... \ src \ msw \ choice.cpp(348):断言“IsValid(n)”失败   wxChoice :: SetString():wxChoice :: SetString

中的无效项索引

错误本身很明显,项目索引无效,但基于我的代码和(不是非常具有描述性的)documentation,我只需要设置列数,然后我可以在给定的索引处编辑文本。

以下是我项目的摘录:

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 :(得分:0)

如果Phones为空,那么phones == 0会怎样?

答案 1 :(得分:0)

wxChoice :: SetColumns

说明:

这仅适用于GTK和Motif,在其他平台下不执行任何操作。

看起来SetColumns用于多列选择控制,我从未见过它。无论如何,它不会向控件添加新项。在Windows中,它在任何情况下都不起作用。

答案 2 :(得分:0)

正如Alex所说,我不应该在Windows上使用wxChoice :: SetColumns,因为它没有任何影响。我发现我必须使用wxChoice :: Append而不是设置列数,然后设置单个字符串。