dbgrid的onmousedown事件在数据集未打开时能响应。
数据集打开后只在标题栏可以响应,在点击某条记录时就不响应了。

解决方案 »

  1.   

    單極某條記錄時就發生了DBCLICK事件了
      

  2.   

    dbgrid控件有个oncellclick事件;楼主凑合着先用一下!呵呵
      

  3.   

    击某条记录时就用onCellClick事件了,同意楼上
      

  4.   

    这样不行,我需要获取鼠标的双击、单击状态、Ctrl、Shift键的状态。
      

  5.   

    定义几个相应类型的全局变量;到mousedown事件里去取出来按键的状态;可以不?
      

  6.   

    可是mousedown事件是针对某一个对象的,dbgrid连接数据集打开后,我们在看到的数据表格上击鼠标,dbgrid的mousedown事件不触发,只能在击dbgrid的title才触发,这样和我在外面设一个button就没什么区别了。
    我想要的是按住shift鼠标单击一条数据记录,然后触发一个事件。
      

  7.   

    给你一点建义:
    procedure TForm1.Tdbgrid1MouseDown(Sender: TObject; Button:      TMouseButton; Shift: TShiftState; X, Y: Integer); var 
      MyHitTest : THitTests; 
    begin 
      MyHitTest := dbgrid1.GetHitTestInfoAt(X,Y); 
      if htOnIcon in MyHitTest then 
        {    
          GetNodeAt(X,Y)获得鼠标的位置 
        }; 
    end; 
      

  8.   

    这个事件好像被内部屏蔽了,没有仔细研究它,很长时间不用标准的DBGrid了
      

  9.   

    自已写一个太费劲了,那么大家都用什么控件来代替dbgrid呢?
      

  10.   

    onCellClick事件,缺点是不能分辨具体的CELL
    建议用 47522341(睡到8:30) ( ) 信誉:100 的方法,
    虽然麻烦点,但作品更为精准,呵呵
      

  11.   

    没有更好的办法,只好试试自已写一个dbgrid,结贴!