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属性,任何人都有任何想法,为什么会这样?
答案 0 :(得分:0)
您在此处未收到错误消息。 real 问题是ListBox :: SelectedItem属性的类型。它是Object,列表框可以存储任何类型的值或对象。而Object没有Text属性。在寻找“文本”标识符并在命名空间名称中查找多个匹配项时,编译器现在变得笨拙。修正:
listBox_mySkills->SelectedItem->ToString()