在我的项目中,我有几个控件在屏幕上显示一组点。我想为所有这些控件提供“套索选择”功能。为了做到这一点,我写了一个名为“Lasso”的类,它负责跟踪鼠标移动,显示套索,在套索关闭时发起事件等等。到目前为止一切都很好。但是,为了使用套索,我必须编写如下代码:
public partial class MyControl : UserControl {
private Lasso lasso;
public MyControl() {
InitializeComponent();
lasso = new Lasso();
lasso.HookEvents(this);
}
}
“lasso.HookEvents”方法负责将套索连接到主机控件的鼠标事件。
我想做的是以某种方式让人们在设计时简单地将“Lasso”组件从工具箱拖到他们的UserControl或Form上,而不用担心自己编写任何代码;套索应该神奇地“正常工作”。有没有办法做到这一点 ?我尝试从Component扩展我的Lasso类,但我无法弄清楚如何让Designer自动生成“lasso.HookEvents(this)”调用。
答案 0 :(得分:0)
如果可能,只需捕获Lasso
对象中的鼠标事件。如果这不可行或不起作用:在Lasso
类中,为Loaded
事件添加处理程序,并在处理程序中运行this.HookEvents(this.Parent);
。