我自定义一个UserControl,在其他窗体中运行的时候,动态的加入到该窗体之上。
问题是:
我在写这个UserControl一些事件时,怎么得到我想要的那个控件? 比如说:
ds是我在窗体中动态加入的一个自定义控件,现在我要写她的MouseDown事件,我想在这个事件的方法体内用到这个ds,怎么办?问题是有点小白···,麻烦各位大侠了!
private void ds_MouseDown(object sender, MouseEventArgs e)
{
}
sender 强制转换成这个自定义类型即可
sender经过强制转换后同我所调用的那个控件不是一个吧,因为发现这样写了还是没有效果。还是对我动态加载到窗体的自定义控件没有产生影响。
@侠梦千年: 如果ds就是你窗台上面的控件的名称,那么在事件里面为什么不可以直接访问ds呢
@侠梦千年: 如果这样写的话,sender应该可以还原为这个控件的。问题可能在于你订阅了Paint事件,这个事件太频繁了(而你本例中应该没有理由要处理这个事件的),你先注释掉它,然后设置断点调试一下另外两个事件
是我自己思路错了,其实触发事件写在自定义控件里面就行,不用到了添加的时候再去绑定。
很好,你自己想明白了问题所在。关于拖放功能,可以参考http://msdn.microsoft.com/zh-cn/library/ms171546.aspx