标题:关于子表的DynamicBackColor斑马色隔行显示,记录号分隔不太好用,各位有什 ...
只看楼主
shonken
Rank: 2
等 级:论坛游民
帖 子:95
专家分:21
注 册:2017-1-15
结帖率:86.67%
已结贴  问题点数:20 回复次数:16 
关于子表的DynamicBackColor斑马色隔行显示,记录号分隔不太好用,各位有什么好办法
数据是通过CA读取SQL,子表与父表关联索引后,用MOD(RECNO(),2)作为DynamicBackColor条件达不到斑马色隔行的效果,见下图,各位有什么办法吗?

搜索更多相关主题的帖子: 记录 显示 条件 办法 子表 
2023-04-27 11:04
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
有索引文件的顺序与RECNO()无关,只浏览可建临时表
2023-04-27 11:22
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:0 
子表增加一个标识字段,按索引顺序赋值,内容是类似recn()的顺序号,这样也许行
2023-04-27 15:57
shonken
Rank: 2
等 级:论坛游民
帖 子:95
专家分:21
注 册:2017-1-15
得分:0 
以下是引用吹水佬在2023-4-27 11:22:59的发言:

有索引文件的顺序与RECNO()无关,只浏览可建临时表


临时表斑马色没问题
2023-04-28 16:10
shonken
Rank: 2
等 级:论坛游民
帖 子:95
专家分:21
注 册:2017-1-15
得分:0 
以下是引用laowan001在2023-4-27 15:57:58的发言:

子表增加一个标识字段,按索引顺序赋值,内容是类似recn()的顺序号,这样也许行


CA,远程表,不用临时增加列了
2023-04-28 16:10
东海ECS
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:Python
等 级:版主
威 望:19
帖 子:376
专家分:1454
注 册:2023-1-24
得分:0 
使用 DynamicBackColor 属性实现斑马色隔行的方法在子表中通常是通过给记录号分配颜色来实现,但这种方法的确存在一些限制。

如果记录号分隔不好用,可以尝试使用 DataGridView 的 AlternatingRowsDefaultCellStyle 属性来实现斑马色隔行效果,具体操作如下:

打开子表的属性窗口,选择“DataGridView”节点,找到“DefaultCellStyle”属性,展开后可以看到“AlternatingRowsDefaultCellStyle”属性。
点击“AlternatingRowsDefaultCellStyle”的“...”按钮,进入编辑窗口。
在编辑窗口中设置颜色,比如“BackColor”设置为“LightGray”。
点击确定,保存设置。
这样,就可以在子表中实现斑马色隔行效果,且不需要额外的记录号列。如果需要给特定行设置不同的背景色,可以使用 DataGridView 的“CellFormatting”事件来实现。

会当凌绝顶,一览众山小.
2023-04-28 19:04
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用东海ECS在2023-4-28 19:04:47的发言:

使用 DynamicBackColor 属性实现斑马色隔行的方法在子表中通常是通过给记录号分配颜色来实现,但这种方法的确存在一些限制。

如果记录号分隔不好用,可以尝试使用 DataGridView 的 AlternatingRowsDefaultCellStyle 属性来实现斑马色隔行效果,具体操作如下:

打开子表的属性窗口,选择“DataGridView”节点,找到“DefaultCellStyle”属性,展开后可以看到“AlternatingRowsDefaultCellStyle”属性。
点击“AlternatingRowsDefaultCellStyle”的“...”按钮,进入编辑窗口。
在编辑窗口中设置颜色,比如“BackColor”设置为“LightGray”。
点击确定,保存设置。
这样,就可以在子表中实现斑马色隔行效果,且不需要额外的记录号列。如果需要给特定行设置不同的背景色,可以使用 DataGridView 的“CellFormatting”事件来实现。

VFP grid的DynamicBackColor与DataGridView是什么关系?
2023-04-28 21:55
shonken
Rank: 2
等 级:论坛游民
帖 子:95
专家分:21
注 册:2017-1-15
得分:0 
以下是引用东海ECS在2023-4-28 19:04:47的发言:

使用 DynamicBackColor 属性实现斑马色隔行的方法在子表中通常是通过给记录号分配颜色来实现,但这种方法的确存在一些限制。

如果记录号分隔不好用,可以尝试使用 DataGridView 的 AlternatingRowsDefaultCellStyle 属性来实现斑马色隔行效果,具体操作如下:

打开子表的属性窗口,选择“DataGridView”节点,找到“DefaultCellStyle”属性,展开后可以看到“AlternatingRowsDefaultCellStyle”属性。
点击“AlternatingRowsDefaultCellStyle”的“...”按钮,进入编辑窗口。
在编辑窗口中设置颜色,比如“BackColor”设置为“LightGray”。
点击确定,保存设置。
这样,就可以在子表中实现斑马色隔行效果,且不需要额外的记录号列。如果需要给特定行设置不同的背景色,可以使用 DataGridView 的“CellFormatting”事件来实现。


用AI作答?
2023-04-28 22:39
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:29
帖 子:484
专家分:1827
注 册:2018-3-13
得分:0 
不允许加辅助字段的话估计是没啥好办法了
如果 grid 是表单上唯一的控件,或者说唯一可接受焦点的控件,用 This.ActiveRow 代替 Recno() 也许勉强可接受
2023-04-29 08:03
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用csyx在2023-4-29 08:03:16的发言:

不允许加辅助字段的话估计是没啥好办法了
如果 grid 是表单上唯一的控件,或者说唯一可接受焦点的控件,用 This.ActiveRow 代替 Recno() 也许勉强可接受


记得以前也有探讨过 ActiveRow 区分奇偶行的问题,但有意思的是:
1、用键盘滚屏正常,但用鼠标滚屏异常。
2、在Scrolled事件中用SetFocus刷新表格,用鼠标滚轮正常,但用点击或拖动滚动条异常。
3、在Scrolled事件中用延时或异步消息执行SetFocus好象还可以。

因为当GRID不具有焦点或访问表格空白行时 ActiveRow 为 0,所以当滚动时要重新使GRID具有焦点。
但GRID的滚动事件Scrolled也有点特别,不能在Scrolled事件中出现“中断”状态,VFP帮助说的是因为当滚动时会出现屏幕刷新问题。

2023-04-29 09:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-512055-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.053045 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved