我有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