1
我正在將Delphi 7.0應用程序轉換爲.Net(2.0)。
在Delphi應用程序中有類似的實現,如「用戶控制」,所以我也在我的C#應用程序中做了同樣的事情。
但是在Delphi中,可以在主(父)上編寫UserControl的事件實現,在.Net中不太可能在UserControl級別執行該操作是必須的(不確定)。
我的問題是,
- 我們不能做在.net中一樣嗎?這樣做
注
我正在將Delphi 7.0應用程序轉換爲.Net(2.0)。
在Delphi應用程序中有類似的實現,如「用戶控制」,所以我也在我的C#應用程序中做了同樣的事情。
但是在Delphi中,可以在主(父)上編寫UserControl的事件實現,在.Net中不太可能在UserControl級別執行該操作是必須的(不確定)。
我的問題是,
注
完成它,你可以對夫婦的替代方法實現這一點:
UserCtr1.UserCtr2.UserCtrl3.Btn1
以引用該按鈕,並在表單代碼中附加事件處理程序。我不會喜歡這種方法,因爲它打破了封裝。但是如果你認爲用戶控件只是一個UI模板(沒有任何行爲),那麼它可能適合你。另一種方法是在控制代碼中包含本地事件處理程序,但使它們從Form調用相應的方法。這可以通過使用TopLevelControl
屬性來完成。例如,在用戶按Ctrl 3代碼
私人無效Btn1_Click(對象發件人,EventArgs的) { ((FormMain)this.TopLevelControl).Search(參數1); }
問題的這種方法是具有形式和方法來解決。將注入一些接口,用於從用戶控制功能調用緊密耦合。表單可以實現該接口。 (接口)實例可以通過某種IoC容器/ DI框架注入到所有用戶控件中。
你能展示一些Delphi代碼嗎?我用Delphi編程已經有一段時間了,但我不記得你不能做你正在說的話。事件的實施屬於班級而不屬於其他班級。所以,如果你向我們展示一些Delphi代碼,並解釋你想要做什麼,那麼將更容易向你展示如何在.NET中執行它。 – 2011-02-10 06:13:11
我想知道我是如何顯示代碼的... Buecase與代碼無關,它是關於編碼的方式.... 只是它... 如何實現一個事件(fucntion)控制usercontorl,它駐留的窗體(父)? – 2011-02-10 06:17:49