当一对msflexgrid的cell操作的时候激活entercell或leavecell事件,而不管msflexgrid的cell是否获得了焦点,我希望cell获得焦点后再激发entercell 及leavecell事件,应该如何做?
单击msflexgrid不一定使cell获得焦点,也就不能激活GotFocus事件,而单击其它控件并不一定激活LostFocus事件,请问大家有什么好的方法?
单击其它控件,先执行控件的click事件才执行msflexgrid的LostFocus事件,这是使我最恼火的事情。比如,我单击一按钮,对msflexgrid的一列赋值,修改好值后,我lostfocus把修改结果保存下来,结果单击按钮使msflexgrid失去焦点,它先执行了按钮的click事件,对msflexgrid又重新进行了赋值,然后再执行lostFocus进行保存,这让我头疼的要死,那位大侠帮帮忙,想个什么办法解决一下。
说得再简单明了的一点就是,想做个像VB中的那种控件属性对话框却做得一踏糊涂,那位大侠有过这方面的经验,请指点一二。

解决方案 »

  1.   

    entercell和leavecell这两个事件是这样触发的:
    当光标点到某个cell时触发entercell(这是第一次点击),而当caret被移到下一个cell或点到下一个cell时触发前一个cell的leavecell然后触发当前cell的entercell事件。
    如果控件可以编辑那干吗不用beforeedit和afteredit这两个事件呢。
    当你编辑完毕press回车或点击到其他控件上时会先触发afteredit事件。
      

  2.   

    MSFlexGrid有beforeedit和afteredit这两个事件????
    如果我在程序中让
    MSFLexGrid1.col=1
    MSFlexGrid1.row=1
    MSFlexGrid1.Text="dsfaf"
    这时后激活EnterCell事件,如果我再接着在程序里执行其它事件,又会激活LeaveCell事件,而这并不是我希望的,我希望的是cell获得焦点的时候激活事件,而不是msflexgrid获得焦点的时候激活事件,而当这个cell失去焦点的时候再激活事件,而不是说msflexgrid失去焦点的时候激活事件,如果cell没有得焦点,则不做任何事。另外还有个问题,我单击其它控件,这时,先执行控件的click事件,而不是先执行msflexgrid的lostfocus事件。请帮忙给个思路。(因为是我需要在Cell获得焦点的时候,显示对应的控件,失去焦点的时候隐藏控件,msflexgrid失去焦点的时候,先进行数据存盘再做其它事)
      

  3.   

    我觉得还是VSFLEXARRAY好用,用mshflexgrid在你对他的操作多了会"死",也就是对你的操作再也没什么反应了,一定要把窗体关了后再开一次才会恢复
      

  4.   

    我前面说的是VSFLEXARRAY控件。
    MSFLexGrid1控件好像是不可以编辑的吧。
      

  5.   

    我就用flexgird + textbox做的,好像没有涉及到那么多的关系。