我一直在試圖將我所有的類編譯成一個類庫,這是一個非常棒的功能。我的目標是讓我的所有代碼都不包含特定應用程序的代碼。當我嘗試添加引用父窗體的類時,我遇到了問題,因爲在類庫中沒有父窗體。如何在應用程序中創建父類之前,如何創建對它尚未知的表單的引用?從類庫中引用父窗體
public class Form1 : Form
{
private Child child;
public Form1()
{
child = new Child(this);
}
}
public class Child
{
private Form1 parent;
public Child(Form1 parent)
{
this.parent = parent;
}
}
此代碼工作在一個標準的應用程序,但是當我在兒童類添加到類庫中,「Form1的」文本將無法編譯,因爲Form1中沒有類庫包含在內。有沒有辦法解決?感謝您的任何幫助。
如果'Child'被放置在一個庫中,那麼它不應該對Form1有任何依賴關係 – 2013-04-04 12:28:31
正如我對其他答案所評論的那樣。是不是最好的做法是在孩子中做一個事件,並從父母那裏訂閱它,而不是從孩子那裏調用父母的方法?謝謝。 – bassplayer142 2013-04-04 12:59:56
使用事件打破視圖的依賴關係。如果導致困難,請使用界面。 – 2013-04-04 13:16:38