验证dbgrideh,如果验证通不过让光标停留在错误的单元格,怎样做?

解决方案 »

  1.   

    難道是相當於EDIT的ONEXIT事件當單元格輸入或數值非法時,給出提示,光標停留在提示的單元格??
      

  2.   

    搞定了,有个abort的命令,可以让光标停住,百度了好久啊
      

  3.   

    在Grid的Options选项中有一个dgAlwaysShowEditor属性,设置为true即可
      

  4.   

    adoquery1.edit;这个属性只能让第一个单元格进入编辑状态,能不能让获得焦点的单元格进入编辑状态呢?
      

  5.   

    这里说一下我的感想吧。楼主的想法估计是很多人都想要的功能,特别是客户很强烈需要的功能,其实就是希望能够像excel那样直接在单元格里面编辑数据,但最大问题就在于如果真那样的话如何保证一条记录的合法性。这个是我多年一直无法完美解决的老大难问题,所以现在我编辑记录几乎都是靠弹出一个编辑框来处理。用abort是一些资料里面说的一个功能,但问题是abort其实就是一个不会弹出错误框的异常,你在事件中如果调用了这个abort那么在其它代码中一旦某个过程中无意触发了这个事件就等于在那里发生异常结果那个过程后面的代码全部不执行了,这些错误很难定位的。其实dbgrideh在编辑单元格的时候其实是用了一个TMaskEdit框覆盖在原来的单元格上面的,而这个控件是由内置的类TInplaceEdit控制的,这个类因为要负责检查编辑的内容,所以很强大,本来如果有一个事件能够在这个控件关闭提交数据之前让你检查一下要提交的数据就很好了,可惜没这个事件,而且查过源代码了,是没法直接访问这个内置的控件的,所以楼主的提问我觉得很难完美解决。如果楼主决定用abort的话你千万要注意代码中会不会有无意中触发带有abort代码的事件。主要是移动数据指针例如Next,Prior这些代码触发处于编辑状态的数据集发出post提交。
      

  6.   

    可以,連接好數據集,你找找看有一個options屬性設定為true...
      

  7.   

    这个属性一设置打开窗口结果就出错,后来在代码里面加入,就出现
    control ‘DBGRid’ has no parente windows