在C#中,怎么判断窗体中某个控件有没有绑定某个事件? PS:比如怎么判断名称为btnSave的Button控件有没有绑定单击事件

在C#中,如何判断窗体中某个控件有没有绑定某个事件? PS:比如如何判断名称为btnSave的Button控件有没有绑定单击事件
  如题
 PS:比如如何判断名称为btnSave的Button控件有没有绑定单击事件
------解决方案--------------------

        void button1_Click(object sender, EventArgs e)
        {
            var del = getDelegateByControl(button1, "EventClick");
            if (del != null)
            {
                MessageBox.Show(del.ToString());
            }
        }

        /// <summary>
        /// 得到控件的事件绑定的委托
        /// </summary>
        /// <param name="Control"></param>
        /// <param name="EventName"></param>
        /// <returns></returns>
        Delegate getDelegateByControl(Control Control, string EventName)
        {
            var events =
                typeof(Control).GetProperty("Events", BindingFlags.Instance 
------解决方案--------------------
 BindingFlags.NonPublic).GetValue(Control)
                    as EventHandlerList;

            var key = typeof(Control).GetField(EventName, BindingFlags.Static 
------解决方案--------------------
 BindingFlags.NonPublic);
            if (key == null)
            {
                throw new ArgumentException("提供的事件名不存在。", "EventName");
            }

            return events[key.GetValue(null)];
        }