我终于在我的应用程序中处理了wxChoice控件,由于某种原因,每当我试图修改列的文本时,我都会得到错误:
....\src\msw\choice.cpp(348):断言"IsValid(n)“在wxChoice中失败::SetString():无效的wxChoice中的项目索引::SetString
这个错误本身很明显,item索引是无效的,但是基于我的代码和(不是非常描述性的) 文档,我应该只需要设置列的数量,那么我就可以在给定的索引上编辑文本。
下面是我项目的一个片段:
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.发布于 2011-11-24 19:40:14
正如Alex所说,我不应该在Windows上使用wxChoice::SetColumns,因为它没有任何影响。我发现我必须使用wxChoice::Append,而不是设置列数,然后设置单个字符串。
发布于 2011-11-24 10:26:27
如果Phones是空的,因此phones == 0
发布于 2011-11-24 11:09:03
wxChoice::SetColumns
备注:
只为GTK和Motif实现,在其他平台下不执行任何操作。
看起来SetColumns用于多列选择控制,我从未见过。无论如何,它不会向控件添加新项。在Windows中,它在任何情况下都不会做任何事情。
https://stackoverflow.com/questions/8255507
复制相似问题