我发现问题的操作:
一个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!!!!!!!
或使它丢失!
一个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!!!!!!!
或使它丢失!
写的很清楚。Spread1.ActiveSheet.SetActiveCell(0,0);
fpSpread.Parent.Focus = true; 也没有效果.还希望大家给点建议!!
但是点完确定后 丢了一个MouseUp事件
反正 Down和UP事件要对应 具体怎么做
可以用Api模拟一个mouse事件
mouse_event(...)
自己查一下吧