Ссылка на объект не установлена на экземпляр объекта: набор dockpanel weifenluo в C++/cli
Я новичок в док панели люкс
В основном у меня возникает ошибка времени выполнения, когда дело доходит до загрузки макета из xml-файла. сохранение макета работает нормально.
У меня есть 2 формы, 1-я-основная форма. 2-я форма-это детская форма
public ref class MyForm2 : DockContent //2nd form (child form)
в основной форме у меня есть следующий код
private: IDockContent ^GetContentFromPersistString(System::String ^persistString) { array<Char>^ id = { ',' }; array<System::String^> ^parsedStrings = persistString->Split(id); if (parsedStrings->Length != 3) return nullptr; MyForm2 ^mf2 = gcnew MyForm2(); if (parsedStrings[1] != System::String::Empty) mf2->Name = parsedStrings[1]; if (parsedStrings[2] != System::String::Empty) mf2->Text = parsedStrings[2]; return mf2; } private: System::Void MyForm_Load(System::Object^ sender, System::EventArgs^ e) { System::String^ path = Path::Combine(Path::GetDirectoryName(Application::ExecutablePath), "DockPanel.config"); DeserializeDockContent ^m_deserializeDockContent = gcnew DeserializeDockContent(GetContentFromPersistString); dockPanel1->LoadFromXml(path, m_deserializeDockContent); //Crashes here }
An unhandled exception of type 'System.NullReferenceException' occurred in WeifenLuo.WinFormsUI.Docking.dll Additional information: Object reference not set to an instance of an object.
Я использовал этот пример кода из C# (проект DockSample)
Что я уже пробовал:
с помощью FileStream ^FS1 в = gcnew файлового потока(Путь, содержит filemode::откройте,флагами fileaccess::читать);
Stream ^s1 = fs1; вместо System:: String