回 帖 发 新 帖 刷新版面

主题:[讨论]grid能不能只允许编辑一行,其他行只读

由于某种需要,我想实现这种功能,比如:只有当前选中的某行可以编辑,其他的行都不能编辑。谢谢各位了。

回复列表 (共11个回复)

沙发

想的太离奇了吧!

板凳

--只可能编辑你选中的行啊--说的具体点,目的何在?

3 楼

我想是能实现,但要从源头做起,这个东东没有现成的的主要原因是价值问题。

4 楼

在表单的 load 或 init 事件中加入
PUBLIC nROW

“插入”按钮的 click 事件(或菜单的“插入”子菜单项)代码
APPEND BLANK 
nROW=RECNO()
GO nrow
thisform.grid1.Refresh 

“修改”按钮的 click 事件(或菜单的“修改”子菜单项)代码
nROW=RECNO()

在表格的 AfterRowColChange 事件代码
this.ReadOnly=IIF(RECNO()=nROW,.F.,.T.)

以上设置,可以使grid只允许编辑一行。

5 楼

“只编辑选中行”是自相矛盾的,因为不选中你如何编辑?
当然只编辑符合某种条件的行是可以的,在afterrowcolchange事件里,判断条件,决定是否readonly

忠告各位朋友,问问题一定要坦诚,不要怕别人学了你的思路,故意把问题伪装一下,我是对事不对人,顺便谈我的观点,绝不是批楼主

6 楼

很简单啊,

7 楼

看来是我说的不够明白,我的意思是:在grid中,为防止数据随意被改动,整个表格设为只读,如果发现某条确实需要改动,就将此行中的“是否全对”改为“否”(”是否全对“为一字段,在表格中设为可以修改,值为”是,否“),此时表格中当前的行可以修改,而其他行都是只读的。
    本来我觉得这个问题够蹊跷的,没抱多大希望,结果还是有很多热心人出手相助,谢谢了。我认为有价值的帖子已经加分。

8 楼


  用SET DELE ON/OFF 應該也可以解決的吧?

 如果確認這個數量不需要改,那就把表格的DELEMARK選中,讓他不顯就好了.

9 楼

在afterrowcolchange事件里,判断“是否全对”条件,如果为“否”则除这一列都为可写(只读为F)
否则,除这一列都为只读(只读为T),不用担心其他行被修改,因为光标不在那一行,没法改

10 楼

四楼,运行后提示this.ReadOnly=IIF(RECNO()=nROW,.F.,.T.)操作数有问题,请问怎样解决?

我来回复

您尚未登录,请登录后再回复。点此登录或注册