我想訪問Controls
組中的所有用戶控件。我使用下面的循環:C++/cli假定控制類型的控制迴路
std::vector<LaminaClass> Laminae;
for each(Control ^E in Controls)
{
if (E->GetType() == ClassLibrary1::Lamina_Input1::typeid)
{
// Create a new lamina class object by copying the current lamina control handle
LaminaClass newLam(E);
// Put the lamina in the appropriate location in the Laminae vector:
Laminae.push_back(newLam);
}
}
的問題是,即使我過濾控制與if
說法,我還是不能假設控制E
是的ClassLibrary1::Lamina_Input1
類型含義,我不能做任何事情這是特定於該控制類型的/與它。我可以執行一般控制的事情,但不能控制Lamina_Input1
控件所特有的任何內容。
我也試過這樣:
std::vector<LaminaClass> Laminae;
// For each lamina control in the group of controls:
for each(ClassLibrary1::Lamina_Input1 ^LamContr in Controls)
{
// Create a new lamina class object by copying the current lamina control handel
LaminaClass newLam(LamContr);
// Put the lamina in the appropriate location in the Laminae vector:
Laminae.push_back(newLam);
}
我一直停留在這一段時間了。我花了很多時間試圖查找答案,但一直沒有成功(可能是因爲我無法以簡潔的方式準確地描述問題)。
你領導下即與危險可能充滿的路徑,你可以做到這一點,但你必須非常小心,真正知道你做什麼;你介意發現使用C#將會容易得多。 –
還有你的代碼甚至不進行編譯; 'Laminae.push_back(newLam);'應該是'Laminae->的push_back(newLam);'...但後來你爲什麼要使用'載體*'? –
@你完全正確。我修正了這個錯誤。我試圖簡化我的代碼,以更容易地構建我的問題,並肯定犯了一個錯誤。我的實際代碼通過引用將遞歸傳遞給一個函數以及一些遞歸。我認爲這將是其他人更容易看到我的實際問題是,但我應該至少嘗試過了第一。我很抱歉。感謝您的反饋。 –