Visual C ++ - 无法获取listBox项的Text值,错误C2872:'Text':模糊符号

时间:2011-09-24 11:46:46

标签: text listbox c++-cli

myWarcraftRace->removeSkill( sysStringToCharArray( listBox_mySkills->SelectedItem->Text ) );

syStringToCharArray()确实有效,同时removeSkill()确实有效,问题是我无法获取listBox_mySkills的文本值 - > SelectedItem

如果我像上面那样做,它会给我错误:

1>d:\programming\vc++ projects\wcrace maker\MainForm.h(194): error C2872: 'Text' : ambiguous symbol
1>          could be 'System::Drawing::Text'
1>          or       'System::Text'
1>d:\programming\vc++ projects\wcrace maker\MainForm.h(194): error C2882: 'Text' : illegal use of namespace identifier in expression

如果我试着在没有文字的情况下使用它,它会给我错误:

1>d:\programming\vc++ projects\wcrace maker\MainForm.h(194): error C2664: 'sysStringToCharArray' : cannot convert parameter 1 from 'System::Object ^' to 'System::String ^'

它应该做什么,因为sysStringToCharArray()需要System :: String ^参数。所以问题是我无法使用列表框项的Text属性,任何人都有任何想法,为什么会这样?

1 个答案:

答案 0 :(得分:0)

您在此处未收到错误消息。 real 问题是ListBox :: SelectedItem属性的类型。它是Object,列表框可​​以存储任何类型的值或对象。而Object没有Text属性。在寻找“文本”标识符并在命名空间名称中查找多个匹配项时,编译器现在变得笨拙。修正:

listBox_mySkills->SelectedItem->ToString()