日期:2014-05-16  浏览次数:20715 次

关于为多个单击事件添加同一个函数的问题
本帖最后由 huoshan12345 于 2014-03-13 01:09:02 编辑
其实标题我不太会说,我具体描述一下

我有一个窗口,里面有个tabcontrol,每一页里都有一个listview
我给listview加了一个右键菜单(里面有一个复制)

下面是相关函数

        private void ShowRightButtonContextMenu(MouseEventArgs e, ListView LV)
        {
            if (e.Button == MouseButtons.Right && LV.ContextMenuStrip != null)
            {
                if (LV.SelectedIndices.Count > 0)
                {
                    LV.ContextMenuStrip.Show(this, e.Location);
                }
                else
                {
                    LV.ContextMenuStrip.Hide();
                }
            }
        }

        private void listView_Script_MouseClick(object sender, MouseEventArgs e)
        {
            ShowRightButtonContextMenu(e, listView_Script);
        }


问题:private void listView_Script_MouseClick这个函数只能添加给一个特定的listView的单击事件
现在我有很多个listView,右键菜单是一样的,不想为每一个listView分别写一个单击事件的函数

概括一下就是说,很多个listView共用一个单击事件的函数,并且这个函数是需要listView的具体信息的
(也就是针对不同的listView可以进行不同的处理)

我想应该有一劳永逸的方法吧,求大神们解答
------解决方案--------------------
可以指向同一个方法,可以动态 +=绑定,也可以静态在设计环境设计好
------解决方案--------------------
不太听懂。。
不知道自定义控件对你有帮助吗?
------解决方案--------------------
object sender就是触发Click的那个ListView,ListView ctl = (ListView)sender就可以得到了