首页 新闻 搜索 专区 学院

关于自定义控件的问题

0
悬赏园豆:5 [已解决问题] 解决于 2013-03-10 16:45

我自定义一个UserControl,在其他窗体中运行的时候,动态的加入到该窗体之上。

问题是:

我在写这个UserControl一些事件时,怎么得到我想要的那个控件? 比如说:

ds是我在窗体中动态加入的一个自定义控件,现在我要写她的MouseDown事件,我想在这个事件的方法体内用到这个ds,怎么办?问题是有点小白···,麻烦各位大侠了!

        private void ds_MouseDown(object sender, MouseEventArgs e)
        {
            
        }

侠梦千年的主页 侠梦千年 | 初学一级 | 园豆:6
提问于:2013-03-09 22:08
< >
分享
最佳答案
0

sender 强制转换成这个自定义类型即可

收获园豆:5
陈希章 | 老鸟四级 |园豆:2338 | 2013-03-10 08:33

sender经过强制转换后同我所调用的那个控件不是一个吧,因为发现这样写了还是没有效果。还是对我动态加载到窗体的自定义控件没有产生影响。

侠梦千年 | 园豆:6 (初学一级) | 2013-03-10 15:09

@侠梦千年: 如果ds就是你窗台上面的控件的名称,那么在事件里面为什么不可以直接访问ds呢

陈希章 | 园豆:2338 (老鸟四级) | 2013-03-10 15:57

@侠梦千年: 如果这样写的话,sender应该可以还原为这个控件的。问题可能在于你订阅了Paint事件,这个事件太频繁了(而你本例中应该没有理由要处理这个事件的),你先注释掉它,然后设置断点调试一下另外两个事件

陈希章 | 园豆:2338 (老鸟四级) | 2013-03-10 16:44
其他回答(1)
0

是我自己思路错了,其实触发事件写在自定义控件里面就行,不用到了添加的时候再去绑定。

侠梦千年 | 园豆:6 (初学一级) | 2013-03-10 16:45

很好,你自己想明白了问题所在。关于拖放功能,可以参考http://msdn.microsoft.com/zh-cn/library/ms171546.aspx

支持(0) 反对(0) 陈希章 | 园豆:2338 (老鸟四级) | 2013-03-10 16:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册