标题:grid单元格格式问题
取消只看楼主
hytizj023
Rank: 1
等 级:新手上路
帖 子:166
专家分:7
注 册:2023-3-2
结帖率:100%
已结贴  问题点数:20 回复次数:9 
grid单元格格式问题


SET CURSOR OFF
问题:鼠标点击单元格后,鼠标会变成输入模式,就这个 (I),我想显示鼠标原来的样子


    效果1

    效果2

有没有办法实现,效果1或效果2的效果
我不想要哪个外面的蓝色的线框
最好像excel那样,点击单元格后,就是框选当前单元格,没有其他的,我只是选择单元格,不会编辑!
选择单元格,哪个框的线条最好能粗一点,框是绿色的
搜索更多相关主题的帖子: 单元格 grid 鼠标 格式 效果 
2023-04-23 22:28
hytizj023
Rank: 1
等 级:新手上路
帖 子:166
专家分:7
注 册:2023-3-2
得分:0 
以下是引用csyx在2023-4-23 23:10:34的发言:

鼠标形状就简单,把 text1 的 MousePointer 属性改成非0,例如:15 代表手指

默认就是:MousePointer 属性 0 ,我说这个没法实现嘛
2023-04-24 08:59
hytizj023
Rank: 1
等 级:新手上路
帖 子:166
专家分:7
注 册:2023-3-2
得分:0 


有没有办法让,红色的背景,把单元格填满,这样有点难看
2023-04-24 09:30
hytizj023
Rank: 1
等 级:新手上路
帖 子:166
专家分:7
注 册:2023-3-2
得分:0 
以下是引用csyx在2023-4-24 11:12:55的发言:

你是在本地绑定的吧!我现在是临时表,请教我要怎么用代码绑定控件
WITH This.column4
.addobject("Container1","Container")
.currentcontrol='Container1'
*.sparse=.f.
*.Container1.标签=本地数据.期号   &&这里要怎么加标签
.Container1.visible=.t.
ENDWITH
我要怎么在容器里面加一个标签,用来显示内容!不知道怎么弄,还有内容居中显示

[此贴子已经被作者于2023-4-24 13:00编辑过]

2023-04-24 12:59
hytizj023
Rank: 1
等 级:新手上路
帖 子:166
专家分: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
hytizj023
Rank: 1
等 级:新手上路
帖 子:166
专家分: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
hytizj023
Rank: 1
等 级:新手上路
帖 子:166
专家分:7
注 册:2023-3-2
得分:0 
以下是引用csyx在2023-4-25 11:45:15的发言:

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

degidt@
2023-04-25 11:45
hytizj023
Rank: 1
等 级:新手上路
帖 子:166
专家分:7
注 册:2023-3-2
得分:0 
以下是引用csyx在2023-4-25 11:48:19的发言:

看邮件

看到了,现在有点其他事情
2023-04-25 12:42
hytizj023
Rank: 1
等 级:新手上路
帖 子:166
专家分: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
hytizj023
Rank: 1
等 级:新手上路
帖 子:166
专家分:7
注 册:2023-3-2
得分:0 
以下是引用csyx在2023-4-25 14:21:07的发言:

设置 box1 整段代码写在 AfterRowColChange 事件中显然是不合理的,我只是看你贴出的此事件原代码中对传入的 nColIndex 参数理解错误就顺手写在这了
vfp 将入口形参命名为 nColIndex 显然是误人子弟,应该叫 nColOrder。也不知你从哪抄来的,应该也是个新手,以讹传讹

这段代码只用执行一次即可,不需要每次行列变化都执行一次。最多也就 grid.RowSource 有变化时执行一次就行,没完整的源代码我也无法确定应该加在哪最合适
能凑合着用,也懒得深究了


现在加了m.oCol.Box1.Text1.ControlSource = m.oCol.ControlSource这句,可以正常显示,但是上下左右没有居中,企鹅号能不能通过一下,谢谢!
我不能绑定数据源,因为我有很多查询,会生成很多临时表,绑定数据源是不科学的

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

2023-04-25 17:51



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




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

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