| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3887 人关注过本帖
标题:请教GRID表格列中加入了复选框,但不可修改值
只看楼主 加入收藏
fgk
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-7-22
结帖率:50%
收藏
已结贴  问题点数:15 回复次数:31 
请教GRID表格列中加入了复选框,但不可修改值
图片附件: 游客没有浏览图片的权限,请 登录注册

如图所示,我在GRID表格中加入了复选框并且绑定了字段,目的是想通过点击复选框变更字段值。
请教在GRID设置了AllowCellSelection = .F. 的情况下,如何令复选框可用?谢谢!
我还特意看了一遍张洪举老师书上关于表格内加入列表框的例子,运行后发现一样不可选,好像被锁了一样
搜索更多相关主题的帖子: 如图所示 如何 
2015-05-15 17:02
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:3 
AllowCellSelection,意思是“允许选择单元格”,你赋值此属性为.F.,即禁止用户选中单元格,既然单元格的控件无法接受焦点,它怎么还能响应你的勾选呢?你要明白每个屬性是什么意思、起什么作用才行啊。你在运行时没发现光标是跳过那个栏的么?看颜色都看得出来啦,蓝色的光带被截断了,表明那一栏是无法进入的。


[ 本帖最后由 TonyDeng 于 2015-5-15 18:21 编辑 ]

授人以渔,不授人以鱼。
2015-05-15 18:19
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:3 
属性设为.T.
2015-05-15 18:22
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
为什么要给标识符起有意义的名字?道理就在这里,看屬性名称都知道是干什么的,那就用不着写注释,这就叫“代码自注释”,注释文字是用于讲解一片代码功能的,不必每行皆写。其实,看那个名字,基本就知道这个屬性怎么用了,连帮助都不用查。

授人以渔,不授人以鱼。
2015-05-15 18:27
fgk
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-7-22
收藏
得分:0 
回复 2楼 TonyDeng
感谢指导,我知道这个功能的用处,因为我看了张洪举老师的实例也是把ALLOWCELLSELECTION设为F后,再加入列表框,还以为这方法可行,只是我看不出来。
请TonyDeng大师再指点一下,当ALLOWCELLSELECTION设为T,复选框可选了,然后单击表格数据,如何把表数据赋值给文本框?
例如上图,ALLOWCELLSELECTION设为T,当单击“咖啡”,如何实时赋值给文本框TEXT1?我试过在GRID的CLICK中,GRID.COLUMN1.TEXT1的click中,也不行。请指点一下!
2015-05-15 18:48
fgk
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-7-22
收藏
得分:0 
回复 3楼 tlliqi
感谢,设成T是可以的。但原本单击GRID数据实时赋值给文本框就不行了,我尝试过把代码放到GRID的CLICK中,GRID.COLUMN1.TEXT1的click中,也不行。请指点,谢谢!
2015-05-15 18:52
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
控件的值是由Column的RecordSource控制的,赋值是看这个屬性的求值结果,那要看你怎么绑定数据源RecordSource,即那个表达式怎么写。一般来说,Column默認嵌入TextBox控件,RecordSource的求值结果直接写到TextBox.Value中,不用另外写响应代码。

授人以渔,不授人以鱼。
2015-05-15 18:52
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
给你看一个我刚写的实例,运行效果见下面求音频控件的帖子。下面是Grid控件中一个Column的设置代码,你留意Columns(2)栏的RecordSource是怎么设置,那里我把字段的内容处理后再透过TextBox显示出来,而不是原样显示字段的内容(即过滤了文件的扩展名)。

程序代码:
    PROCEDURE oPlayList.Init
        WITH This
            .ReadOnly = .T.
            .DeleteMark = .F.
            .RecordMark = .F.
            .GridLines = 0
            .ScrollBars = 0
            .HighlightStyle = 2
            .RecordSourceType = 1
            .RecordSource = "songs"
            .ColumnCount = 2
            WITH .Columns(1)
                WITH .Header1
                    .Caption = "歌星"
                    .FontBold = .T.
                    .Alignment = 2
                ENDWITH
                .ControlSource = "songs.artiste"
                .Width = 60
            ENDWITH
            WITH .Columns(2)
                WITH .Header1
                    .Caption = "曲目"
                    .FontBold = .T.
                    .Alignment = 2
                ENDWITH
                .ControlSource = "JUSTSTEM(songs.song)"         && 取songs表字段song的一部分,JUSTSTEM()函数是提取文件名字符串中扩展名前面的串,注意双引号!
                .Width = 120
            ENDWITH
        ENDWITH
    ENDPROC

如果你明白了这个用法,就知道Grid的数据绑定源可以是任意的自定义函数,换言之,你想显示什么,完全是自由的。

不妨把表的内容给你看看,对照一下:
图片附件: 游客没有浏览图片的权限,请 登录注册


显示的效果:



[ 本帖最后由 TonyDeng 于 2015-5-15 19:03 编辑 ]

授人以渔,不授人以鱼。
2015-05-15 18:56
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你1楼设计的界面,表必须有对应的两个字段,第一个原样用“名称”字段即可,第二个字段必须是逻辑型的,那么在点击CheckBox时,字段的值会自动翻转。你无法省去第二个字段,那是必须的,因为表格是二维的,每一行是否选中,都要跟行对应记录,没有那一栏是不可能的。我猜你原先是想不设计那个字段凭空造一栏出来,那不可能,逻辑上决定做不到。


[ 本帖最后由 TonyDeng 于 2015-5-15 19:11 编辑 ]

授人以渔,不授人以鱼。
2015-05-15 19:08
muyubo
Rank: 9Rank: 9Rank: 9
来 自:山东莱芜
等 级:蜘蛛侠
威 望:3
帖 子:471
专家分:1017
注 册:2011-3-6
收藏
得分:3 
GRID.COLUMN1.controlsource=xx &&表逻辑字段
if xx
   text1.value=名称
else
   text1.value=""
endif
大约就是这个意思.不过check是多选,这种方法不太好.
2015-05-15 19:14
快速回复:请教GRID表格列中加入了复选框,但不可修改值
数据加载中...
 
   



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

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