| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 118 人关注过本帖
标题:VFP9中希望在Grid表格控件的每列标题下增加一行文本框用于各列相关数据的统 ...
只看楼主 加入收藏
ynchunge
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2025-5-19
收藏
 问题点数:20 回复次数:3 
VFP9中希望在Grid表格控件的每列标题下增加一行文本框用于各列相关数据的统计,相面的代码究竟错在哪里?
*--- 动态创建统计文本框(添加到表单,非 Grid 内) ---*
LOCAL lnLeft, lnTop, lnHeight,lnColWidth, j, lcStatName, loTextBox
lnTop = 10  && 统计行距表单顶部的位置
lnLeft = THISFORM.grdMyGrid.Left  && 初始 Left 与 Grid 左对齐

FOR j = 1 TO THISFORM.grdMyGrid.ColumnCount
    lcStatName = "txtStat" + ALLTRIM(STR(j))      &&生成文本控件唯一名称
   
    * 移除已存在的同名控件(避免冲突)
    IF PEMSTATUS(THISFORM.grdMyGrid.Columns[j], lcStatName, 5)
        THISFORM.grdMyGrid.Columns[j].RemoveObject(lcStatName)
    ENDIF

    * 在列中动态添加文本框
    THISFORM.grdMyGrid.Columns[j].AddObject(lcStatName, "TextBox")
    loTextBox = THISFORM.grdMyGrid.Columns[j].&lcStatName
    *.THISFORM.grdMyGrid.Columns[j].Sparse = .F.  &&强制所有单元格显示此控件
    IF TYPE("loTextBox") != "O" OR ISNULL(loTextBox)
       MESSAGEBOX("创建文本框 " + lcStatName + " 失败!")
         LOOP  && 跳过当前循环
    ENDIF

    * 显式引用 Grid 列的宽度
    lnColWidth = THISFORM.grdMyGrid.Width  && 获取 Grid 列宽
    lnHeight = THISFORM.grdMyGrid.Height   && 获取 Grid 高度
        
    * 设置文本框属性(独立 WITH 块)
    WITH loTextBox
        .Visible = .T.            && 默认可见
        .Width = .Parent.Width    && 继承列宽
        .Height = 20              && 高度
        .Top = 20                 && 在列标题上方显示(负值向上偏移)
        .Alignment = 2            && 居中
        .FontSize = 12            && 字体大小
        .BackColor = RGB(240, 240, 240)  && 浅灰色背景
        .BorderStyle = 1          && 单线边框
        .ReadOnly = .T.           && 禁止编辑
        IF laFields[j,2]="N"      &&关键:无需禁用数据绑定(即:无需通过设置 ControlSource=""解绑)
          .Value = 0
        ENDIF
    ENDWITH

    * 更新下一个文本框的 Left 位置
    lnLeft = lnLeft + lnColWidth
ENDFOR

* 刷新表单
THISFORM.Refresh()
搜索更多相关主题的帖子: 控件 THISFORM 文本框 Grid 统计 
3 天前 14:07
shizi0
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:163
专家分:430
注 册:2012-10-2
收藏
得分:0 
这个是在每列中新增一个TextBox吧,跟原始text1并列,但不会显式表现出来,看列属性Currentcontrol指向谁就显示谁。
好像与“在Grid表格控件的每列标题下增加一行文本框用于各列相关数据的统计”无关。
3 天前 15:59
hsfisher
Rank: 2
等 级:论坛游民
帖 子:25
专家分:19
注 册:2009-4-26
收藏
得分:0 
种个草
前天 08:30
wcx_cc
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:431
专家分:1371
注 册:2015-10-2
收藏
得分:0 
不需要每列的 Currentcontrol='TextBox1'吗?
前天 23:59
快速回复:VFP9中希望在Grid表格控件的每列标题下增加一行文本框用于各列相关数据 ...
数据加载中...
 
   



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

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