我终于在我的应用程序中弄乱了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.
答案 0 :(得分:0)
如果Phones
为空,那么phones == 0
会怎样?
答案 1 :(得分:0)
wxChoice :: SetColumns
说明:
这仅适用于GTK和Motif,在其他平台下不执行任何操作。
看起来SetColumns用于多列选择控制,我从未见过它。无论如何,它不会向控件添加新项。在Windows中,它在任何情况下都不起作用。
答案 2 :(得分:0)
正如Alex所说,我不应该在Windows上使用wxChoice :: SetColumns,因为它没有任何影响。我发现我必须使用wxChoice :: Append而不是设置列数,然后设置单个字符串。