http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 5713|回复: 8

[其他] 循环触发TrackBar控件的scroll事件

[复制链接]
发表于 2014-5-13 16:28:40 | 显示全部楼层 |阅读模式
1金钱
在窗体1:Frm1中,有10个TrackBar控件。
现在,我想通过一个for循环来触发每个TrackBar控件的scroll事件。
可以实现吗?

最佳答案

查看完整内容

事件的名称不一样?那你可以使用反射的方法调用,把你的事件名字起的有规则就行了。可以参考这个http://www.sufeinet.com/forum.php?mod=viewthread&tid=2984


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2014-5-13 16:28:41 | 显示全部楼层
事件的名称不一样?那你可以使用反射的方法调用,把你的事件名字起的有规则就行了。可以参考这个http://www.sufeinet.com/forum.php?mod=viewthread&tid=2984
回复

使用道具 举报

发表于 2014-5-13 17:08:59 | 显示全部楼层
当然可以了,直接调用就行了,事件也是方法,可以直接调用的。
回复

使用道具 举报

 楼主| 发表于 2014-5-13 17:11:21 | 显示全部楼层
站长苏飞 发表于 2014-5-13 17:08
当然可以了,直接调用就行了,事件也是方法,可以直接调用的。

因为是在循环体中的,每一次遍历,调用的都不是同一个方法吧?
比如:
[C#] 纯文本查看 复制代码
foreach (Control c in this.Controls)
            {
                if (c is TrackBar)
                {
                    //怎么调用呢?
                }
            }
回复

使用道具 举报

发表于 2014-5-13 17:13:12 | 显示全部楼层
((TrackBar)c).事件名(参数,,,)
回复

使用道具 举报

 楼主| 发表于 2014-5-13 17:15:24 | 显示全部楼层
本帖最后由 会飞的小猪 于 2014-5-13 17:16 编辑
站长苏飞 发表于 2014-5-13 17:13
((TrackBar)c).事件名(参数,,,)

事件名每个都不一样的,10个trackbar控件就有10个不同的事件名
如下:
[C#] 纯文本查看 复制代码
trackBar1_Scroll
trackBar2_Scroll
trackBar3_Scroll
trackBar4_Scroll
trackBar5_Scroll
...
trackBar10_Scroll
回复

使用道具 举报

 楼主| 发表于 2014-5-13 17:29:58 | 显示全部楼层
站长苏飞 发表于 2014-5-13 17:08
当然可以了,直接调用就行了,事件也是方法,可以直接调用的。

这样子能够取到各个函数名:
string funName = ((TrackBar)c).Name + "_Scroll(sender,e)";
不够这样应该不能调用了吧,不清楚有没有解决办法呢
回复

使用道具 举报

 楼主| 发表于 2014-5-13 19:14:42 | 显示全部楼层
站长苏飞 发表于 2014-5-13 17:30
事件的名称不一样?那你可以使用反射的方法调用,把你的事件名字起的有规则就行了。可以参考这个http://www ...

刚刚调试了下,可实现。
不过有点要注意:函数的属性要public的才行,不然type.GetMethod("函数名")的结果将是null
回复

使用道具 举报

 楼主| 发表于 2014-5-13 19:27:54 | 显示全部楼层
本帖最后由 会飞的小猪 于 2014-5-13 21:25 编辑
站长苏飞 发表于 2014-5-13 16:28
事件的名称不一样?那你可以使用反射的方法调用,把你的事件名字起的有规则就行了。可以参考这个http://www ...

使用反射机制调用类中的test函数来读取textbox中的数据,结果是,不管你怎么修改textbox的值,每次都是读取修改前的数据
修改前:
1.png

修改后:
2.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-5-18 03:50

© 2014-2021

快速回复 返回顶部 返回列表