我刚刚创建了一个使用ToolTip
控件的Windows窗体,我意识到该组件为窗体上的每个其他控件提供了设计时属性。
我知道对于属性,您可以简单地实现IExtender
接口,但这可以扩展到事件吗?如果是这样怎么办?
答案 0 :(得分:0)
我使用递归函数将事件hanlder添加到所有控件,即使它们嵌套在像网格或面板之类的容器中
Normaly我将这个功能用于很多事情 即使我想在焦点/离开时添加自定义backgroundcolor。
private void addEventhandler(Control Parent) {
if (Parent.Controls.Count > 0) {
//===>If the curren control is a container!
foreach(Control iChild in Parent.Controls) {
addEventhandler(iChild);//Call it self
}
} else {//Individual control
//===>TODO: Add here all your events handler to Parent variable.
Parent.Click += new EvenHandler(delegate(object sender,object e){
MessageBox.Show("Hello");
});
//==>If you whant to filter by control type you can do this
if(Parent is TextBox){
((TextBox)Parent).Text = "Hi! XD";
}
}
}
像这样实现此代码
addEventhandler(this);//If you want to add the events handler to all controls in your form
addEventhandler(myGridControl);//To specific grid