2013-01-22 24 views
0

我正在努力確定基於另一個表單中發生的事件更新一種表單的最佳方法。以另一種形式發生事件後更新一個表單

例如,我的應用程序有一個窗體,顯示ListView中的部件列表(即庫存,非庫存等)。我的應用程序也有一個表單,允許用戶添加一個新的部分。該應用程序不是MDI

對於每次插入,更新或從其他表單中刪除項目時更新顯示零件清單的表單的最佳選擇是什麼?

我意識到,我可以通過引用到第二種形式的情況下,其中的形式是從第一個實例化,但是,我不想緊緊結合形式。我對自定義事件進行了嘗試,但是,我認爲這將需要在中間實現一個類,它接管窗體的實例化,以便它可以訪問這兩個對象。

我想我可以使用.NET內置屬性。我最好的選擇是什麼?

+0

最好顯示您的當前代碼,以便人們可以看到/遵循您的邏輯思維 – MethodMan

回答

1

如果我們只是談論兩種形式,我會走簡單的路線(例如,不要使用工廠類)。

在接收器的形式

添加事件(如ProductListChanged

添加一個全局變量(通過靜態類屬性(見下文))來保存接收器的形式。

public class globals { 
    public static ProductForm productForm {get;set;} 
} 

然後,您可以通過全局靜態屬性引發ProductListChanged事件。

+0

好吧,這聽起來像是一個更簡單的解決方案。所以,爲了確保我正確理解... ProductForm(即接收器)將定義事件並處理它。然後,發件人(即AddItemForm,UpdateItemForm等)將在靜態類中的ProductForm引用上觸發ProductListChanged事件,並且ProductForm將處理事件?對不起,這樣一個noob ... – Grasshopper

+0

@Grasshopper:我們都是學生。你知道它是正確的 - 是的。 –

+0

謝謝,這有助於我理解事件。我過去曾經參與過的大部分項目都有一位或多位建築師和高級人員在各自的專業領域幫助設計,特別是分層次的關注領域。這個項目是我的第一個DBA,架構師,系統分析師,業務分析師,技術支持,UAT等......雖然有時令人沮喪,但它確實幫助我成長。由於我沒有公司內部的資源尋求幫助和/或建議,因此這個網站和其他網站已經有了很大的幫助。 – Grasshopper