日期:2014-05-17  浏览次数:21190 次

怎么判断一个事件是否已经绑定了事件处理函数?
比如我在winform里面,针对不同的情况,我要对KeyUp事件绑定不同的处理函数。
但是绑定前,我需要判断一下KeyUp是否已经绑定了事件处理函数,该怎么判断呢?

------解决方案--------------------
你可以 写一个KeyUp方法,把你所以要调用不同的KeyUp的控件,窗体的KeyUp 事件 绑定到你自己写的KeyUp上,
在这个方法里,做判断,其中 sender 里是你的控件属性, e是你键盘操作
这样你想怎么组合都可以,也可以都拆开写,随你,给你写个例子,你看看 这样能解决你的问题不


private void KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyValue == 37 
------解决方案--------------------
 e.KeyValue == 39)
                //方法0 当输入 37,39时
                return;

            if (e.KeyCode == Keys.F2)
            {
                //方法1 当键盘 输入 F2时
                return;
            }

            if (e.KeyCode == Keys.Enter)
            {
                //方法2当键盘 输入 F2时
                return;
            }

            if (sender == textBox1 && e.KeyCode == Keys.Enter)
            {
                //方法3 在控件 textBox1里 输入 回车
                return;
            }
            else if (sender == textEdit_Depart_area_name )
            {
                //方法4 在 控件 textEdit_Depart_area_name 时 
                return;
            }
}

------解决方案--------------------

BindingFlags myBindingFlags = BindingFlags.Static 
------解决方案--------------------
 BindingFlags.Instance 
------解决方案--------------------
 BindingFlags.Public 
------解决方案----------------