我发现问题的操作: 
   一个spread控件放到一个form上,给spread添加一个Spread_CellClick事件和Spread_ComboCloseUp事件,当我触发Spread_CellClick这个事件,我想把spread中的聚焦(我也不知道它叫啥,就是你把鼠标点到一个Cell时,Cell四边有一个虚线的,而我说的就是那一圈虚线),重新设置到Cell[0,0](第0行,第0列)或者让spread中的那个聚焦丢失. 
     我要先说明下,我的spread的有一个ComboBox列,而Spread_CellClick事件只有点击ComboBox列时有操作可以做,(假定弹一个MessageBox),不是的话就直接return.当点击MessageBox中 <yes>Button时,我希望实现(重新设置到Cell[0,0](第0行,第0列)或者让spread中的那个聚焦丢失)挎号中的操作,因为如果不这样的话,我在点击原来的地方时(鼠标在别处没点过),就不回触发Spread_CellClick事件,而直接触发Spread_ComboCloseUp了. 我其实是希望在我CellClick,Spread中的ComboBox时,Spread_CellClick事件永远是Spread中ComboBox响应的第一个事件. 
但因为聚焦的存在,导致了失败!!!! 首先,我要说明一下,我开发的不是网站,而是FORM开发. 
其次,不好意思,有可能我没说的太清楚. 
我的意思是,在SPREAD中有个COMBOX,当你点击这个COMBOX,触发了Spread_CellClick,那时Focus(我也认为是Focus)还在那个COMBOX那个位子上,再点击COMBOX时Spread_ComboCloseUp过来响应. 
因为Focus没有离开过,而Spread_CellClick和Spread_ComboCloseUp事件有连带响应(你做了,我就一定要做),而通过研究发现,只有把那个Cell上的(或者说是COMBOX)Focus移开,那么你只有把鼠标放上去,重新来点击COMBOX,Spread_CellClick就回永远是第一事件. 我对控件的Focus操作过,但是不知道是不是因为我的操作是在一个ShowDialog的FORM上做的原因(该FORM上只有一个Spread),Focus的操作失败了.
 
问题是如何移开那个Focus!!!!!!!
或使它丢失!

解决方案 »

  1.   

    那个是ActiveCell看一下Spread的帮助文档 
    写的很清楚。Spread1.ActiveSheet.SetActiveCell(0,0);
      

  2.   

    fpSpread.ActiveSheet.SetActiveCell(0,0)用了,但是好像没效果!!//想把Focus 搞到fpSpread的父窗体上.
    fpSpread.Parent.Focus = true;  也没有效果.还希望大家给点建议!!
      

  3.   

    没怎么看明白你的东西不过你要看到这点 在Show提示框的时候你的哪个什么Spread获取到MouseDown事件
    但是点完确定后 丢了一个MouseUp事件  
    反正 Down和UP事件要对应  具体怎么做 
    可以用Api模拟一个mouse事件
    mouse_event(...)
    自己查一下吧