2011-09-17 47 views
0

我试图提取.txt文件的内容,然后在列表框显示它,我的开发环境是VC++ 2010如何使用C++在列表框中显示字符串?

listBox1中,Button1的是我的Windows窗体appliaction的元素。

这是我走到这一步:

  private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) 
      { 
      ifstream ss_dfs_output("C:\\Users\\...\\Sampletext.txt"); 
      string TempStoreToDisp; 
      vector<string> VecToDisp; 
      vector<string>::iterator ToDisp_ptr; 
      string OutToDisp; 
      while (getline(ss_dfs_output,TempStoreToDisp,'\n')) 
      { 
       VecToDisp.push_back(TempStoreToDisp); 
      } 
      for (ToDisp_ptr=VecToDisp.begin();ToDisp_ptr!=VecToDisp.end();ToDisp_ptr++) 
      { 
       OutToDisp = *ToDisp_ptr; 
       String ^sss = Convert::ToString(OutToDisp.c_str()); 
       this->listBox1->Items->Insert(0,sss); 
      } 
      } 

的代码转换为全成,但输出似乎很奇怪。似乎sss返回“真”,但不应该是一个字符串?

+1

为什么你混的C++和CLR?你为什么不做C++/Win32/MFC或C#/ Winforms? –

+0

我使用“String * sss = Convert :: ToString(OutToDisp.c_str());”原本,但它不能通过编译器。我对此很陌生,所以不太确定他们之间的关系。 – user950207

回答

2

如何

this->listBox1->Items->Add(gcnew String(OutToDisp.c_str())); // you can still Insert if you want 

MSDN SByte* constructor reference

+0

我试过这种方法,但出现以下错误: 错误C2664:'System :: Windows :: Forms :: ListBox :: ObjectCollection :: Add':无法将参数1从'System :: String'转换为' System :: Object ^' – user950207

+0

问题已解决。 需要添加“gcnew”。 希望这个帖子能够帮助更多的人。 this-> listBox1-> Items-> Add(gcnew String(OutToDisp.c_str())); – user950207

+0

很高兴听到您的问题得到解决(修复了答案) –

相关问题