通过Component向控件添加自定义UI行为

时间:2012-04-03 00:54:40

标签: c# .net windows-forms-designer custom-component

在我的项目中,我有几个控件在屏幕上显示一组点。我想为所有这些控件提供“套索选择”功能。为了做到这一点,我写了一个名为“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)”调用。

1 个答案:

答案 0 :(得分:0)

如果可能,只需捕获Lasso对象中的鼠标事件。如果这不可行或不起作用:在Lasso类中,为Loaded事件添加处理程序,并在处理程序中运行this.HookEvents(this.Parent);