2010-08-06 54 views
0

非常感謝您提前給予的幫助。作爲變量傳遞窗口,wpf

在位於主()下面的代碼: Application.Run(新frmBackground(frmExit)) 我試圖發射窗口frmBackground接受一個窗口,在構造函數的參數,所有內容加載後(背景圖像),然後啓動傳遞的窗口。但是,這不能編譯,只有編譯時,我使用的應用程序.run(新frmBackground(新frmExit())) 傳遞正確的窗口參數,但它本身創建一個frmExit實例,並啓動窗口,即使當frmBackground啓動窗口的代碼被註釋掉了。

再次感謝您。

回答

0

從我的理解,當你說Application.Run(新frmBackground(frmExit)),你沒有傳遞一個frmExit的實例,但類型(類),並從我的理解,你的方法是在這裏你保留一些你知道你可能需要的資源的參考,像這種形式的參考

frmExit exitForm = new frmExit(); 
Application.Run(new frmBackground(exitForm)); 

還是有一些「包」類:期待一個實例...你可能想要做這樣的事情(frmExit),然後更改frmBackground的構造函數,然後將參數變量的調用替換爲「bag」類中的值..類似的東西..

如果這不是你想達到什麼樣的,我建議你給你的代碼在這裏

+0

原Application.Run(新frmBackground(新frmExit))並通過frmExit – 2010-08-06 23:21:29

+0

的實例,謝謝您的答覆。我已經嘗試過這種方法,結果完全一樣。我不想傳遞窗口的實例(它導致它顯示),只是將窗口作爲稍後實例化的類型。我希望我不太困惑。 – Daniel 2010-08-06 23:23:57

+0

然後你在frmBackground的構造函數上使用了錯誤的簽名......並且如果你只是想稍後實例化,爲什麼不創建一個屬性或者方法來傳遞一個類型(比如說frmExit),爲此你必須執行這個類型必須繼承frmExit的類型),然後應用一個工廠來創建該類型的實例? – MilkyWayJoe 2010-08-06 23:29:58