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

Control的Leave事件小问题
现在有2个Control A(TextBox) B(Button)  A上注册有Leave事件 并在事件里写上弹MessageBox。  
private void TextBox_Leave(object sender, EventArgs e)
{
MessageBox.Show("Test");
}

现在要做的是我想用鼠标点击控件B,这时候焦点肯定是转移到B上了,这时候必然触发A上的Leave事件。

问题:
B上有没有一个事件是发生在A.Leave之前?换而言之就是有没有办法在我点击B的时候捕捉到B上的一个事件而且这个时间是A.Leave触发之前  触发的


在线等 谢谢了

------解决方案--------------------
动态的去 +=或-= 绑定leave事件,甚至可以在鼠标enter B时 -= A的leave事件,A的enter时,绑定A的leave事件
------解决方案--------------------
引用:
现在有2个Control A(TextBox) B(Button)  A上注册有Leave事件 并在事件里写上弹MessageBox。  
private void TextBox_Leave(object sender, EventArgs e)
{
MessageBox.Show("Test");
}

现在要做的是我想用鼠标点击控件B,这时候焦点肯定是转移到B上了,这时候必然触发A上的Leave事件。

问题:
B上有没有一个事件是发生在A.Leave之前?换而言之就是有没有办法在我点击B的时候捕捉到B上的一个事件而且这个时间是A.Leave触发之前  触发的


在线等 谢谢了

LZ在A的leave事件第一行上加几句
 if (btB.Focused)
            {
                return;
            }
这样以下的代码就不会执行了