如何使DBGRID某列不能获得焦点?(100分)

  • 主题发起人 主题发起人 hnzqw
  • 开始时间 开始时间
H

hnzqw

Unregistered / Unconfirmed
GUEST, unregistred user!
如何使DBGRID某列不能获得焦点?
 
在oncolenter或oncellclick里写代码,把焦点转到别的列
 
你是不是想让某一列不可编辑啊,那么双吉dbgrid,添加所有的列,然后吧你想要不能获得焦点的列
设置为realonly=true就可以了,
 
完全同意楼上2位的见解
 
TO menxin,:
如何把焦点从一个列移到另一个列
 
在dbgrid的colenter中判定时候是要转移的列,如果是用下面语句
DBGrid.datasource.datset.filedbyname('转移目的列').focuscontrol
转移目的列的意思是你想重新定焦点的列的字段名称,注意大小写一定要一样
 
相当于使列的Enable属性为false.就像表格的Fixed列一样不能获得焦点。
如何解决?
 
用第三方控件吧。
 
第三方控件不能满足我的要求,谁能解决这个问题呢?
 
哈哈,非常简单
oncellclick
if ...then
sendmessage(self.DBGrid1.Handle ,wm_killfocus,0,0);
 
在dxdbgrid 中为何不行呢?
 
再没人能回答了吗?
 
这问题还没搞定?
下列代码把第二列变为只读,而转到第一列
procedure TForm1.DBGrid1ColEnter(Sender: TObject);
begin
if DBGrid1.SelectedIndex=1 then
DBGrid1.SelectedIndex:=0;
end;
 
to menxin:
不错,可以满足我的要求,不过我用的是DXDBGrid,它没有OnColEnter事件,
它有ChangeColumn事件,我就在这个事件里写程序,基本可以,请问在DXDBGrid中
是否有和oncolenger一样的事件。
另外在DXDBGrid中没有SelectedIndex属性。
 
dxdbgrid?没用过,你不是说不用第三方吗?
 
我是想在不同的DBGRID中都可以作到让某列不能得到焦点。
现在基本可以作到。只是dxdbgrid中的事件为什么会没有colenter和colexit。
是不是用其它的事件代替了?有人知道吗?
 
接受答案了.
 
后退
顶部