// this is a Pseudocode
form.button.Click += DoSomething; // (object, EventArgs)
DoSomething(...)
{
foreach(Control in form.controls)
{
// do whatever you need with your control
}
}
现在它变得有趣了。比如说,你创建自定义按钮、文本框;那么你
public class CustomButton : Button.....
public class CustomTextBox : TextBox.....
// And in these ^^^ custom controls you can do this
override void ParentChanged(...)
{
var form = this.FindForm();
form.[SomeEvent] += Listen(.....); // (object, EventArgs)
base.ParentChanged(...);
}
public void Listen(.....) // (object, EventArgs)
{
// DO whatever you want with this control
// for each control type will be different code
}
1条答案
按热度按时间kknvjkwl1#
.Net通过事件和委托实现 “Observer” 模式。
现在它变得有趣了。比如说,你创建自定义按钮、文本框;那么你
第二种方法让.Net Observer完成所有工作,但您需要进行继承。
第一种方法看起来更简单。你只需要在一些
switch
中覆盖所有的控件类型。在第二种方法中,每个控件类型都可以做它自己需要做的事情。