我有WinForms應用程序。我的表單派生類有UserControl派生類。 我只是把幾個控件放到一個UserControl中以簡化重用。 UserControl
的Load
事件未被解僱。我必須設置一些物業嗎?UserControl加載事件未被觸發
4
A
回答
7
嘗試在你的用戶控件重寫OnLoad() method。從MSDN:
在onload方法還允許派生 類來處理事件,而不 附加委託。這是處理派生類中的 事件的首選技術。加載事件停止射擊
protected override void OnLoad(EventArgs e)
{
//Your code to run on load goes here
// Call the base class OnLoad to ensure any delegate event handlers are still callled
base.OnLoad(e);
}
+0
謝謝@Ashley,它完美地工作。你知道爲什麼OnLoad事件在某些情況下不起作用,當重寫OnLoad時,它每次都有效? – Samuel 2012-09-24 13:24:42
2
您不需要爲UserControl的事件觸發設置任何特殊屬性。您有兩種方法訂閱活動。在屬性(屬性網格)中選擇事件列表...雙擊Load屬性。所有必要的代碼片段都將放在適當位置,並且您的光標將以正確的方法等待您。
第二種方法是訂閱事件,像這樣:
public MyMainForm()
{
InitializeComponents();
myUserControl.Load += new System.EventHandler(myUserControl_Load);
}
void myUserControl_Load(object sender, EventArgs e)
{
MessageBox.Show(((UserControl)sender).Name + " is loaded.");
}
1
一個原因是,當你有你的控制父母,做這樣的事情
protected override void OnLoad(EventArgs e)
{
//do something
}
你總是需要確保做到這一點
protected override void OnLoad(EventArgs e)
{
//do something
base.OnLoad(e);
}
相關問題
- 1. Winforms UserControl加載事件未被觸發
- 2. PreRender事件未被觸發
- 3. Javascript:圖像完整/加載事件未被觸發
- 4. ASP.NET HttpApplication.EndRequest事件未被觸發
- 5. 按鍵事件未被觸發
- 6. Windows Phone 7.5 touchend事件未被觸發
- 7. C#COM事件未被觸發
- 8. Plupload -FileUploaded事件未被觸發
- 9. global.asax中的Init事件未被觸發
- 10. 嵌套控件的事件在UserControl中未觸發
- 11. 動態添加控件的事件未被觸發
- 12. Visual Studio 2010 - C#UserControl事件觸發
- 13. UserControl的事件處理程序未觸發
- 14. 異步事件被觸發
- 15. 觸發頁面加載事件
- 16. 的iframe的onload事件觸發加載
- 17. C#加載事件不會觸發
- 18. 在SWF加載動作觸發事件?
- 19. propertychange事件觸發頁面加載
- 20. Javascript事件觸發頁面加載
- 21. 背景圖片加載觸發事件
- 22. 當div加載時觸發事件
- 23. 加載的事件在Silverlight中未觸發
- 24. 加載iframe的事件處理程序未觸發
- 25. 未在IE中觸發的加載事件iFrame
- 26. 的iframe加載事件未觸發jQuery中
- 27. Gridview在dropdownlist事件觸發時未加載
- 28. slickgrid viewportchanged事件未觸發
- 29. 未觸發鼠標事件
- 30. Silverlight DataGrid事件未觸發
請顯示您的代碼(的大綱)。 – 2010-02-08 09:11:10
您是否已訂閱了來自班級中每個用戶控件的onload事件? – Ravisha 2010-02-08 09:12:24