| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1379 人关注过本帖
标题:grid单元格格式问题
只看楼主 加入收藏
hytizj023
Rank: 1
等 级:新手上路
帖 子:188
专家分:7
注 册:2023-3-2
收藏
得分:0 
以下是引用csyx在2023-4-24 13:07:08的发言:

哪来的本地表,demo.rar 里面有 dbf 吗?同样是临时表, 表单 init 方法中生成的 cursor

用代码加没好处,想加点事件处理代码还得用 bindevent 绑定方法
直接把类库中的 boxtext 拖到要用的列里面,设定 currentcontrol 是刚加入的控件就行,不要 sparse = .f. !
然后参照 demo 表单 grid1.AfterRowColChange 代码


图片附件: 游客没有浏览图片的权限,请 登录注册

字怎么不见了,我不是设置了黑色吗

程序代码:
Local oCol as Column
For each m.oCol in This.Columns
    If m.oCol.ColumnOrder == m.nColIndex
        Exit
    EndIf
EndFor

If Upper(m.oCol.Name) == 'COLUMN2'        && 当前列是绑定 f2 字段的框框列
    *-- 自定义类 BoxText 设置的是透明背景,要显示背景色,必须改成不透明
    m.oCol.Box1.BackStyle = 1
    m.oCol.Box1.BackColor = Rgb(255,0,0)
    m.oCol.Box1.Text1.ForeColor = Rgb(0,0,0)
    m.oCol.Box1.Text1.FontBold = .t.
    *-- 显示背景色后, 原来的绿色的粗边框就不协调了, 边框厚度调整为 0
    m.oCol.Box1.BorderWidth = 0
EndIf



[此贴子已经被作者于2023-4-25 11:21编辑过]

2023-04-25 10:55
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:709
专家分:2848
注 册:2018-3-13
收藏
得分:1 
谁知道呢,哈哈哈,这控件就随便弄的,没考虑太多,不知哪里冲突了
把 AfterRowColChange 里面的代码都注释掉,能显示字不?

外面的蓝色的线条把 grid 的 HighLightRow 设为 .F.

这家伙很懒,啥也没留下
2023-04-25 11:29
hytizj023
Rank: 1
等 级:新手上路
帖 子:188
专家分:7
注 册:2023-3-2
收藏
得分:0 
以下是引用csyx在2023-4-25 11:29:17的发言:

谁知道呢,哈哈哈,这控件就随便弄的,没考虑太多,不知哪里冲突了
把 AfterRowColChange 里面的代码都注释掉,能显示字不?

外面的蓝色的线条把 grid 的 HighLightRow 设为 .F.

把 AfterRowColChange 里面的代码都注释掉,也不能显示
程序代码:
Local nRowHeight, nColWidth, nMagin, nTop, nWidth

m.nRowHeight = This.Parent.Parent.RowHeight
m.nColWidth  = This.Parent.Width

m.nMagin = This.BorderWidth
With This.Text1 as TextBox
    m.nTop = (m.nRowHeight - 2*m.nMagin - .Height) / 2
    m.nTop = Max(m.nMagin, m.nTop)
    m.nWidth = Max(0, m.nColWidth - 2*m.nMagin)
    .Move(m.nMagin+1, m.nTop+1, m.nWidth-1)
EndWith

This.Move(0, 0, m.nColWidth, m.nRowHeight)

Return This.BackStyle



程序代码:
Local oCol as Column

m.oCol = This.Parent

With This.Text1 as TextBox
    .ControlSource = m.oCol.ControlSource
    .Format = m.oCol.Format
    .InputMask = m.oCol.InputMask
    .Alignment = m.oCol.Alignment
    .FontName = m.oCol.FontName
    .FontSize = m.oCol.FontSize
    .FontBold = m.oCol.FontBold
    .Height = Fontmetric(1, .FontName, .FontSize, Iif(.FontBold, 'B', 'N'))&&是不是这里
EndWith

This.BackColor = 0xffffff


你看一下哪里有冲突

[此贴子已经被作者于2023-4-25 11:45编辑过]

2023-04-25 11:40
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:709
专家分:2848
注 册:2018-3-13
收藏
得分:1 
不清楚你动了哪个不该动的地方,把你的表单发给我,上次说的邮箱是啥来着?

这家伙很懒,啥也没留下
2023-04-25 11:45
hytizj023
Rank: 1
等 级:新手上路
帖 子:188
专家分:7
注 册:2023-3-2
收藏
得分:0 
以下是引用csyx在2023-4-25 11:45:15的发言:

不清楚你动了哪个不该动的地方,把你的表单发给我,上次说的邮箱是啥来着?

degidt@
2023-04-25 11:45
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:709
专家分:2848
注 册:2018-3-13
收藏
得分:1 
看邮件

这家伙很懒,啥也没留下
2023-04-25 11:48
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:709
专家分:2848
注 册:2018-3-13
收藏
得分:1 
以下是引用hytizj023在2023-4-25 11:40:37的发言:
Local oCol as Column

m.oCol = This.Parent

With This.Text1 as TextBox
    .ControlSource = m.oCol.ControlSource
    .Format = m.oCol.Format
    .InputMask = m.oCol.InputMask
    .Alignment = m.oCol.Alignment
    .FontName = m.oCol.FontName
    .FontSize = m.oCol.FontSize
    .FontBold = m.oCol.FontBold
    .Height = Fontmetric(1, .FontName, .FontSize, Iif(.FontBold, 'B', 'N'))&&是不是这里
EndWith

This.BackColor = 0xffffff
你看一下哪里有冲突

这是 boxtext 类的代码,你没改这里吧,类里面代码不需要动的

这家伙很懒,啥也没留下
2023-04-25 12:07
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:709
专家分:2848
注 册:2018-3-13
收藏
得分:1 
想到一种可能,你的列 ControlSource 没手工设置,看看试机号这一列的 ControlSource 是不是空?

AfterRowColChange 事件中先加一行,能显示字再考虑加哪合适

If Upper(m.oCol.Name) == 'COLUMN2'        && 当前列是绑定 f2 字段的框框列

    m.oCol.Box1.Text1.ControlSource = m.oCol.ControlSource    && 暂时先加这

    ....
    ....
    ....
EndIf


[此贴子已经被作者于2023-4-25 12:16编辑过]


这家伙很懒,啥也没留下
2023-04-25 12:10
hytizj023
Rank: 1
等 级:新手上路
帖 子:188
专家分:7
注 册:2023-3-2
收藏
得分:0 
以下是引用csyx在2023-4-25 11:48:19的发言:

看邮件

看到了,现在有点其他事情
2023-04-25 12:42
hytizj023
Rank: 1
等 级:新手上路
帖 子:188
专家分:7
注 册:2023-3-2
收藏
得分:0 
以下是引用csyx在2023-4-25 12:10:34的发言:

想到一种可能,你的列 ControlSource 没手工设置,看看试机号这一列的 ControlSource 是不是空?

AfterRowColChange 事件中先加一行,能显示字再考虑加哪合适

If Upper(m.oCol.Name) == 'COLUMN2'        && 当前列是绑定 f2 字段的框框列

    m.oCol.Box1.Text1.ControlSource = m.oCol.ControlSource    && 暂时先加这

    ....
    ....
    ....
EndIf


m.oCol.Box1.Text1.ControlSource = m.oCol.ControlSource&&完美解决,我不能绑定数据源,因为临时表很多

2023-04-25 13:20
快速回复:grid单元格格式问题
数据加载中...
 
   



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

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