9个delegate?9个button的话,他们click事件的参数都是一样的,只要一个delegate就可以了,哪来的9个?
没办法理解你的问题

解决方案 »

  1.   

    hm
    是我的描述不清楚
    我重新描述一下:
    我做的是一个image scrollable menu
    类似于www.aboutyang.net上的那个带highlight的控件
    www.aboutyang.net上的那个control没有click事件
    我的usercontrol里面是一幅图,在这幅图上画着9个button
    当这个usercontrol在一个form里面被调用时
    我希望用户能自己添加click事件,
    但从用户的角度来理解
    他认为控件里包含了9个button
    他所定义的delegate是分别对应于这9个button的
    也就是用户以为他是分别为这9个button分别添加了click event的delegate
    而由于这9个button实际上不存在
    所以他的所有9个delegate都被添加到control的click event的delegate队列
    而这个队列的执行是按照其添加的顺序,依次执行的
    我现在想请教的是
    能否当一个click event发生时
    能否只执行其中一个delegate
    而且这个决定不应当由用户自己来决定调用那个
    也就是用户无需了解其中的调用规则
    只需要按照他的想法
    添加对应于9个button的delegate
    至于你对一个click event添加9个delegate的疑惑
    请参考msdn,并自己动手做点试验
    仔细看过了再来发表评论
    因为第一个参数完全可以使这9个delegate在不同的情况下被执行
    谢谢
      

  2.   

    天啊,不是一个简单的复合控件么。你将九个控件编个号,不就是一个ToolButton了么,对应的Click事件也就顺畅了。用复合控件,你可以申明一个Click事件,也可以申明九个Click事件,就看你愿意了
    public Event Button1Click然后在Button1的Click中引发该事件
    RaiseEvent Button1Click(sender,e)
      

  3.   

    Corny() 
    先谢谢你的回复
    我在帖子里面说了
    这9个控件只是逻辑上的
    实际只是一张图片中间的某个区域而已 :)
    单纯要实现这个功能
    我最少已经有2个方法了
    我所希望的是用户不要添加任何干预代码
    也就是说用户直接当成向9个button(当然实际是不存在的)添加消息响应