to lmercury() F1 和F5to  rushing(勇敢的心)
快捷键都是唯一的

解决方案 »

  1.   

    你是不是想让鼠标选择菜单和按快捷键同等效果?
    怎么会有两个快捷键呢?
    况且你的快捷键不标准。F1一般是帮助。
    保存一般是 Ctrl + S.
      

  2.   

    呵呵,这个问题啊?那要看你的代码是如何写的.你目前发现了菜单的快捷键不起作用,但还有其他的诸如command按钮快捷键(Default属性为True时按回车执行)也是无法保存绑定数据,但如果你是用鼠标按按钮来执行则可以保存.不信你可以试试.
    先回答你问题b:出现如此不一致的情况主要原因是因为控件绑定时,必须在获得鼠标捕获权(由API函数setcapture设定)的释放的时候才能更新recordset.fields("字段名").value的值,即最后提交到数据库的值.这也许是文本控件与ADO协作上的漏洞吧.所以,当你用鼠标去点击菜单或按钮保存的话,窗口上的鼠标捕获权会归于菜单或按钮,这样就获得了文本控件捕获权的释放,在recordset中也会将文本的内容赋给value值,数据库内容就得到了更新.如果是直接以快捷键保存的话,虽然你看上去文本控件内容是经你修改过的内容,并且更新操作也会执行成功.但实际上文本控件实际提交的是recordset.fields("字段名").OriginalValue值(原先未经更改前的值),所以你会发现保存完后数据库内数据没有变.
    好了,既然知道原因所在,就可以回答你的问题a了,不过仅供参考,我的方法是在每个绑定控件的change实践里加上一句代码:
    recordset.fields("字段名").value=text1.text
    这样就能在更改控件内容时直接提交value值到数据库,从而保证一致.但不幸的是这样写的话就意味着你有几个绑定数据的控件就需要写多少句这样的代码,对于代码维护不太好.希望你能想出比我更好的方法.
      

  3.   

    To  ztchen(ZT) 
    感谢您们的关注先说明一下:菜单项的功能是切换到别的界面,不是专们执行保存的,因为绑定的优势就在自动保存。F1和F5是对应不同菜单的,怎么定义(比如F1)是没有关系的。对ztchen所作的分析,我觉得是有道理的,可是我是用Grid绑定的,就不太好办了!
      

  4.   

    To ztchen(ZT) 
    我根据您的思路是这样做的:
    在菜单过程中最前面加入以下语句
    releasecapture
    setcapture getmenu(frmMain.hwnd)可是问题还是仍旧
      

  5.   

    to xdd1125(成长快乐)
    你说用datagrid来绑定数据,我也考虑了用你的这个方法测试,但还请问你具体是怎样切换界面?我好象连自动保存都没有试出来,你能不能给个示例代码?
      

  6.   

    这个问题可能是:
    应用某些控件的 Validate 事件发生问题:  * 要保证每个控件 都触发Validate 事件 * 解决方法:
    1、 设置每个控件 CausesValidation = True

    2、每个控件都置在frame中
      

  7.   

    To ztchen(ZT) 
    是这样的:
    一个rs与一个fpSpread grid控件绑定
    F1时,rs打开一个记录集,用于修改或增加数据
    F5时,rs打开另一个记录集,用于修改或增加另外一个主题的数据点击菜单时,两个方向都能保存,但按快捷键(F1、F5)时最后一个输入的数据就没能保存
    (fpSpread控件应该与DataGrid的绑定情况一样,只不过fpSpread的功能强一些)
    To towhere(天涯) 
    不太明白您的意思!
      

  8.   

    to xdd1125(成长快乐):
    我今天测试了快一下午,始终没有达到预期的效果.我是用Datagrid来做的,我没有找到你用的fpspread控件.不过,很明显一点就是recordset.fields("字段名").value是改变了,不象我所说的那种情况.至于到底是何原因我还在研究中,希望能和你多交流
      

  9.   

    To : ztchen(ZT) 多谢您的热情支持!(fpSpread是一个很棒的grid控件)我上面说的更正一下:
    "点击菜单时,两个方向都能保存,但按快捷键(F1、F5)时最后一个输入的数据就没能保存"其实按快捷键时整行数据都没能保存的,并不是最后一个保存不了up
      

  10.   

    哦,麻烦你能不能给我发个fpSpread控件,谢谢
    [email protected]
      

  11.   

    To ztchen(ZT) 
    这个控件很大15M多,邮件没法发送。其实您可以直接到www.farpoint.com/trail上下载(或在vb版搜一下有6.0的注册码)up
      

  12.   

    当你设定了ADO控件是实时更新时,如果你想保存就让ADO控件记录移动就行了.
      

  13.   

    我从不用ADO控件的。事实上,您并不知道什么时候点击菜单,您也无法确认什么时候移动记录,不可行(我的问题是:为什么在两种情况下,结果不一样,怎么解决"快捷键"问题?)