注册 登录
编程论坛 VFP论坛

发现一个现象:不知道是不是grid的bug,还是本身就这样设计的

kangss 发布于 2024-05-13 18:49, 367 次点击
VFP9
发现一个有趣的现象:grid1,有10列,1、2、3列隐藏;
执行:thisform.grid1.visible=.t.时,之前visible=.f.的1、2、3列也会显示出来,不知道是不是BUG还是本身就这样设计?
如果没有发现这个现象的,可以标记一下,避免这个坑

[此贴子已经被作者于2024-5-13 18:51编辑过]

8 回复
#2
sdta2024-05-13 19:13
先1、2、3列.F.,后表格.T.,全部列显示属于正常现象。
#3
kangss2024-05-13 19:22
回复 2楼 sdta
你说的对。不知道这个现象的,或者理解有偏差的,这个地方需要注意。
我个人认为:数据源没动它,仅仅只是执行了“父容器”的属性,“子容器”的属性被强制全部改变,我感觉是不合适的
#4
kangss2024-05-13 19:26
grid 在 VFP6 中是有bug的,隐藏列后,列的宽度还在,还在占位
vfp6,也是这个现象,应该是 MS 本身就是这样设计的。
#5
shizi02024-05-13 23:59
这个不是BUG,父子规则就如此。
Grid列ToolTip那倒确实有Bug

#6
laowan0012024-05-14 11:43
以下是引用kangss在2024-5-13 18:49:45的发言:

VFP9
发现一个有趣的现象:grid1,有10列,1、2、3列隐藏;
执行:thisform.grid1.visible=.t.时,之前visible=.f.的1、2、3列也会显示出来,不知道是不是BUG还是本身就这样设计?
如果没有发现这个现象的,可以标记一下,避免这个坑

如果想一下子把所有隐藏的列显示出来,那就不是bug了吧?
需求不同,站的角度不同,二者不可兼得
#7
csyx2024-05-14 13:23
我认为是,同样是容器类控件,无论是 Container,还是 CommandGroup、OptionGroup,改变父控件的可见性,都不会重置其中子控件的 Visible 值
既然楼主已经验证 vfp6 也存在同样问题,那么可能 vfp5 甚至 vfp3 都有这个问题。M$ 之所以没修复这个 bug, 原因之一可能是积重难返,为保持向下兼容,只好一直继承这个 bug
#8
liuxingang282024-05-14 16:47
我认为,这不应该是 VFP 的 Bug。因为 Grid 与 Column 的很多相同属性都有这一特点。除了楼主提到的 Visible 属性外,还有 ReadOnly、Enabled、FontBold、……等等,也就是说,重置 Grid 的属性,会同时 重置 Column 的相关属性。这一点,我很早就注意到了,当时还把其单独记在一个小本子上。
#9
liuxingang282024-05-14 16:53
Grid 是一个很特殊的控件,它是在 Browse 窗口的基础上开发的,与一般的窗口控件不同。前些年阅读过【任明汉】先生翻译过的一篇叫做《VFP表格透析》的文章,里面介绍了很多表格的有关特性以及解决方案,读来很有启发。
1