日期:2014-05-18  浏览次数:20914 次

请教一个问题,两个窗体间的焦点切换相关。

开发环境:VS2005 
语言:C# 

问题描述:

新建了两个窗体Form1和Form2.
Form1上有两个Button,一个Lable,一个工具栏,工具栏上有一个按钮。

点击Button1的时候,Click事件:修改Lable1的内容。
点击Button2的时候,Click事件:Show出窗体Form2,并设Form2.Owner=Form1;
工具栏上的按钮在点击的时候,Click事件和Button1的Click处理事件是一样的。

问题点,在我Show出Form2后,Form2窗口是Actived状态。我用鼠标指针指向没有Active的Form1中的Button1.
点击后,Form1变为Actived,并且Button的Click事件已经处理。我用同样的方法,去点击Form1工具栏上的按钮,
只是做了Form1为Actived,并没有去处理Click事件。

哪位大侠明白,这是什么原理。请赐教;另,我怎么做才能在点击工具栏上的按钮时,完成这两步的处理,一个是切换

Actived,另一个是执行按钮的Click事件。

------解决方案--------------------
可以在鼠标移动到工具栏的时候,先让工具栏获得焦点
private void toolBar_MouseMove(object sender, MouseEventArgs e)
{
toolBar.Focus();