在列表框中显示矢量元素

时间:2014-02-25 00:07:06

标签: listbox c++-cli

我想在列表框中的向量中显示元素。但是,我经常遇到错误:错误C2664:'System :: Windows :: Forms :: ListBox :: ObjectCollection :: Add':无法从'std :: basic_string< _Elem,_Traits,_Alloc>'转换参数1到'System :: Object ^'

我在c ++ / cli中使用windows窗体。  这是代码:

for (size_t z = 0; z < container.size(); z++){
        listBox_name->Items->Add(container[z]);
    }

1 个答案:

答案 0 :(得分:0)

根据错误消息,您的向量是std::string的向量。使用marshal_asstd::string转换为托管列表框可以接受的托管String^

for (size_t z = 0; z < container.size(); z++){
    listBox_name->Items->Add(marshal_as<String^>(container[z]));
}

如果您发现自己经常这样做,请考虑将std::string的向量更改为完全托管类型,例如List<String^>^