关于DBGRID的只读属性问题。解决了就给分
大家知道DBGRID的只读属性为true的时候,是不可以在DBGRID上修改记录的,
然而我想要做的事情是让DBGRID里的某些字段可以修改,某些字段不可以修改,
为什么呢,因为一张表里有些字段是不能改的(如该字段有可能是其他表的外键),
我就是既要让DBGrid.readOnly:=False,要又控制一些字段是只读的,怎么实现。
(说明:我是不用DBNavigator的,我是用按钮写代码来编辑某些字段的)
问题点数:0、回复次数:4Top
1 楼txlicenhe(马可)回复于 2003-12-04 14:05:46 得分 0
锁定第三列:
DataGrid1.Columns(2).Locked = TrueTop
2 楼btlxy(平凡)回复于 2003-12-04 14:25:37 得分 0
可以通过Options属性设置也可以,在光标移动的事件中判断
如果列名为指定列,则Options设为可修改的Top
3 楼zhujiangxiong()回复于 2003-12-04 15:07:55 得分 0
我窗体一创建的时候DBGrid.readOnly:=True,我要通过窗体上的一个“编辑”按钮的ONClick事件来实现DBGrid的某些字段为可以写(即:dbgrid1.Columns[1].ReadOnly := False),这样没有办法实现,你们可以试试看,我的代码如下:
procedure Tbianji.Button4Click(Sender: TObject);
begin
DBGrid1.Columns[0].ReadOnly:=true;;
DBGrid1.Columns[1].ReadOnly:=true;;
DBGrid1.Columns[2].ReadOnly:=false;
DBGrid1.Columns[3].ReadOnly:=false;
DBGrid1.Columns[4].ReadOnly:=true;;
DBGrid1.Columns[5].ReadOnly:=false
Button4.Enabled := False; //“Button4”为编辑按钮
Button5.Enabled := True; ////“Button5”为保存按钮
end;
在线等待求解…………
分不够再加
Top
4 楼btlxy(平凡)回复于 2003-12-04 15:18:07 得分 0
if (MyGrid1.col=6)then////////设置6列为可以修改
begin
Mygrid1.Options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goColSizing,goEditing,goTabs,goAlwaysShowEditor,goDrawFocusSelected];
end
else
begin
Mygrid1.Options:=[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goColSizing,goTabs,goDrawFocusSelected];
end;
Top




