Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > .NET: Общие вопросы > Не удаётся добавить строковый массив в таблицу |
Автор: Katerina1993 26.12.18, 19:47 |
Пытаюсь добавить строковый массив в таблицу выдаёт ошибку. <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> private: System::Void buildWordList() { String ^line = ""; setlocale(LC_ALL, "En_US"); std::string str[5] = {"sss","aaa","ddd","ggg","sdawd"}; clue_window->clue_table->Rows->Add(str[2]); } ОШИБКА <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> c:\documents and settings\мои документы\visual studio 2008\projects\proj5\proj5\Form1.h(369) : error C2664: int System::Windows::Forms::DataGridViewRowCollection::Add(...cli::array<Type,dimension> ^): невозможно преобразовать параметр 1 из 'std::string' в 'System::Object ^' 1> with 1> [ 1> Type=System::Object ^, 1> dimension=1 1> ] 1> Оператор определенного пользователем преобразования недоступен, или 1> Для выполнения данного преобразования нет доступного оператора преобразования, определенного пользователем, или вызов оператора невозможен 1> Если убрать str[2] и записать какое-нибудь слово, то тогда сработает. |
Автор: Славян 27.12.18, 00:59 |
Попробуйте чистый способ: ...Add( str[2].c_str() ); |
Автор: Wound 27.12.18, 07:27 |
Вообще ничего не понятно из написанного. Какой тип имеет Rows? : Добавлено Вот тебе пример, работает в консоли: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> #include "stdafx.h" #include <string> using namespace System; using namespace System::Collections::Generic; int main(array<System::String ^> ^args) { const int cArraySize = 5; List<String^>^ wordList = gcnew List<String^>(); std::string str[cArraySize] = { "sss","aaa","ddd","ggg","sdawd" }; for(size_t idx = 0; idx < cArraySize; ++idx) { wordList->Add(gcnew String(str[idx].c_str())); } for (int idx = 0; idx < wordList->Count; ++idx) { System::Console::WriteLine(wordList[idx]); } System::Console::ReadKey(); return 0; } |
Автор: Katerina1993 27.12.18, 14:25 |
Спасибо, но я уже разобралась. Оказывается в Visual C++ есть справка достаточно нажать F1. Там есть примеры работы с массивом. Вот мой вариант. <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> private: System::Void buildWordList() { String ^line = ""; setlocale(LC_ALL, "En_US"); array<String^>^ str = {"test","test2"}; clue_window->clue_table->Rows->Add(str[0],str[1]); } |