说说我遇到的情况:1. 在一个窗体上有一个按钮(btn1)和一个DBGRID控件.
2. 按钮上设置了快捷键,如: btn1.caption= '修改(&D)'.
3. DBGRID控件是有数据的,这里就不多介绍了.但要将option.dbEditin设置为FALSE;现在我碰到的问题:
    由于按钮设置了快捷键,按理说按alt + D才会执行按钮的点击事件(onclick).可现在在DBGRID上按'D'键时也会
执行按钮的点击事件.
不知是不是DBGRID的一个BUG? 
请问该如何禁止在DBGRID按'D'键时触发按钮的点击事件?
我用的版本是DELPHI6.

解决方案 »

  1.   

    刚试了下,没有发现你所说的问题。但不管焦点在哪,按Alt+D 都是相当点了那个按钮。当焦点在DBGrid时按D时只是在所在列输入一个“D”。
      

  2.   

    你应该没有将DBGRID的OPTION设置为dbEditin设置为FALSE.设置为FALSE时,你就不能在DBGRID输入任务东西了.
      

  3.   

    確實是有這個問題,如果是不讓編輯,dbEditing 可設為True,可設置 ReadOnly 為True,可以同樣達到不能修改的目的。
      

  4.   


    Oraclers,你說的方法是可以,我也試過,但是按下按鍵後它有光標在那裡,如果能屏蔽掉是最好了.
      

  5.   

    应该是焦点的问题,这样,想要转移焦点可以用 类似 button1.SetFocus 的方法
    或者在onkeydown按键判断中加些条件,比如满足某些条件时执行按钮操作
      

  6.   

    经测试没有发现这个问题
    不过发现一个其他的问题,在cxgrid里按住D,同时鼠标点滚动条,会触发按钮事件,有空继续研究一下。