我是初接触c#,遇到了一些问题,想问一些思路方面的问题,不是要贴代码。
比如是这样:父界面form1中有button1和button2,和panel,点击button1时在panel里显示子界面form2,点击button2时在panel里显示其它form,现在是我的form2里默认进入一个控件,有焦点,且有失焦点事件。
这个画面其实挺简单的,希望我描述的还算清楚。现在是我在form2里操作没问题, 但是如果我点了button1进入form2,但是又不想操作了,直接点button2退出来,这个时候还是要执行失焦点事件!!
不加控制的话,程序就是这样执行。可是我现在就是想要控制一下,让这个失焦点事件不执行,并且form1是别人写的,一般不能改,我只能尽量改我的form2,怎么办啊?先说一下我的一些想法:
一开始想过判断点击的控件是不是属于form2,但是我的form2里有好多控件,这样太不现实了。
又想过利用一些form的leave,disactivate等函数,但是它们都是在失焦点事件之后发生,没用。
还有想过在失焦点事件里加标志位判断,但是这个值其实也没法设置……就这样觉得无计可施了,希望各位高手给个思路,拦击一下这个失焦点事件?或者有什么直接能用的属性值我不知道??
比如是这样:父界面form1中有button1和button2,和panel,点击button1时在panel里显示子界面form2,点击button2时在panel里显示其它form,现在是我的form2里默认进入一个控件,有焦点,且有失焦点事件。
这个画面其实挺简单的,希望我描述的还算清楚。现在是我在form2里操作没问题, 但是如果我点了button1进入form2,但是又不想操作了,直接点button2退出来,这个时候还是要执行失焦点事件!!
不加控制的话,程序就是这样执行。可是我现在就是想要控制一下,让这个失焦点事件不执行,并且form1是别人写的,一般不能改,我只能尽量改我的form2,怎么办啊?先说一下我的一些想法:
一开始想过判断点击的控件是不是属于form2,但是我的form2里有好多控件,这样太不现实了。
又想过利用一些form的leave,disactivate等函数,但是它们都是在失焦点事件之后发生,没用。
还有想过在失焦点事件里加标志位判断,但是这个值其实也没法设置……就这样觉得无计可施了,希望各位高手给个思路,拦击一下这个失焦点事件?或者有什么直接能用的属性值我不知道??
太抽象了吧?而且,即使要脱离,这个脱离的操作写在哪里呢?感觉你的意思是写在button2的click事件里?可是我只能操作form2啊
我又想到了利用鼠标mouseEnter和mouseLeave,如果给panel增加mouseLeave事件,倒是可以在失焦点前执行,可是一旦进入控件,也要触发mouseLeave,这就不好了。本意是希望鼠标移出整个panel所在的区域才触发,这样就可以将失焦点事件通过+= new EventHandler这种形式去掉。