分享

C# 事件监听 实现

 牛人的尾巴 2015-09-16

C# 事件监听 实现

dye854258 10级 分类: C#/.NET语言 被浏览67次 2013.03.23

请微博专家回答 检举

我new 了一个NotifyIcon 对象,在通知区域显示,当单击时候需要触发一个带参数的事件,//butSuspendAll是Form1中的一个按钮,dgvSoft是Form1中的DataGridView private void butSuspendAll_Click(object sender, EventArgs e){ obj.DoubleClick += new EventHandler(aa_Click(sender,e,i);//这里加入参数就会报错 } private void aa_Click(object sender, EventArgs e,int i) { Process p = new Process(); p.StartInfo.FileName = @dgvSoft.Rows[i].Cells[6].Value.ToString(); p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;p.Start(); } -----------------------实在不好意思,我的积分都被前段时间抽奖花光了,就剩下9个了,如果采纳您的答案,也只有这么多给了。
采纳率:48% 10级 2013.03.24
obj.DoubleClick += new EventHandler(aa_Click(sender,e,i);//这里加入参数就会报错 这里你要注册NotifyIcon 对象的双击事件, new EventHandler(aa_Click); 这里只能传方法名,不能传参数进去。 还有EventHandler只支持两个参数(object sender, EventArgs e) 所以 private void aa_Click(object sender, EventArgs e,int i) { Process p = new Process(); p.StartInfo.FileName = @dgvSoft.Rows[i].Cells[6].Value.ToString(); p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;p.Start(); } 这个方法的,int i参数必须去掉。 其实我想到个方法,你不需要传这个参数的 你可以把这个参数保存到NotifyIcon 对象的Tag中 触发 aa_Click事件时,你可以从 NotifyIcon a =(NotifyIcon )sender; int i = Convert.ToInt32(a.Tag); 这样一样可以取到的,有疑问继续问我!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多