以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  动态增加记录窗口  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=135711)

--  作者:lshshlxsh
--  发布时间:2019/6/1 14:59:00
--  动态增加记录窗口

请问一下动态增加的记录窗口怎么设置背景颜色?  

 

以下这段代码  对存在的记录窗口是可以的   通过代码新增的 就报错了

 

        \'\'\'\'\'\'\'\'锁定列  必填列涂色
        \'Dim g = Forms(e.Form.Name).Controls(jls).basecontrol
        \'g.Styles.normal.Border.Style = 3
        \'g.styles.Normal.Border.Color = Color.Black
        \'g.styles.Normal.Border.width = 3
        \'Dim Multi As String =dr("锁定列")
        \'If Multi> "" Then
            \'Dim Values() As String
            \'Values = Multi.split("|")
            \'For idx As Integer = 0 To Values.Length - 1
                \'Tables("合同").Cols( Values(idx) ).AllowEdit =False
                \'g.GetCellStyle(   Tables("合同").Cols( Values(idx) ).Index  ,1).BackColor = Color.Gainsboro
            \'Next
        \'End If
        \'Dim btl As String =dr("必填字段")
        \'If btl> "" Then
            \'Dim jcbts() As String = btl.split("|")
            \'For Index As Integer = 0 To jcbts.Length - 1
                \'g.GetCellStyle(   Tables(e.Form.Name).Cols( jcbts(Index) ).Index    ,1).BackColor = Color.pink
            \'Next
        \'End If
        \'\'\'\'\'\'\'\'锁定列  必填列涂色

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:动态增加控件.foxdb

[此贴子已经被作者于2019/6/1 15:03:59编辑过]

--  作者:有点蓝
--  发布时间:2019/6/1 15:42:00
--  
For Each jls As String In yms
    If jls<>"基本资料" Then
        yq.TabPages.Add(jls,jls)
        i =i+1
        Dim kj As WinForm.RecordGrid
        kj =e.Form.CreateControl("页签", ControlTypeEnum.RecordGrid)
        kj.Left =5
        kj.Top =5
        kj.Width =495
        kj.Height =485
        Dim ym As WinForm.TabPage =e.Form.Controls("页签").TabPages(i)
        ym.AddControl(kj)
        kj.Table = Tables(e.Form.Name) \'指定绑定表
        kj.Columns = DataTables("页面显示").GetComboListString("显示列","页签=\'" & jls & "\'","排序")
        kj.Build
        \'\'\'\'\'\'\'锁定列  必填列涂色
        Dim g = kj.basecontrol
        g.Styles.normal.Border.Style = 3
        g.styles.Normal.Border.Color = Color.Black
        g.styles.Normal.Border.width = 3
        Dim Multi As String =dr("锁定列")
        If Multi> "" Then
            Dim Values() As String
            Values = Multi.split("|")
            For idx As Integer = 0 To Values.Length - 1
                Tables(e.Form.Name).Cols( Values(idx) ).AllowEdit =False
                g.GetCellStyle(   Tables(e.Form.Name).Cols( Values(idx) ).Index  ,1).BackColor = Color.Gainsboro
            Next
        End If
        Dim btl As String =dr("必填字段")
        If btl> "" Then
            Dim jcbts() As String = btl.split("|")
            For Index As Integer = 0 To jcbts.Length - 1
                g.GetCellStyle(   Tables(e.Form.Name).Cols( jcbts(Index) ).Index    ,1).BackColor = Color.pink
            Next
        End If
        \'\'\'\'\'\'\'锁定列  必填列涂色
        
    Else
        jljbxx.Table = Tables(e.Form.Name) \'指定绑定表
        jljbxx.Columns = DataTables("页面显示").GetComboListString("显示列","页签=\'基本资料\'","排序")
        jljbxx.Build
    End If
    
Next

--  作者:lshshlxsh
--  发布时间:2019/6/1 16:07:00
--  

谢谢老师   但是还是报错

我知道错在哪了  是因为记录窗口 找不到那列导致的

 请问怎么获取记录窗口列名?

[此贴子已经被作者于2019/6/1 16:41:17编辑过]

--  作者:有点甜
--  发布时间:2019/6/3 9:57:00
--  
以下是引用lshshlxsh在2019/6/1 16:07:00的发言:

谢谢老师   但是还是报错

我知道错在哪了  是因为记录窗口 找不到那列导致的

 请问怎么获取记录窗口列名?

[此贴子已经被作者于2019/6/1 16:41:17编辑过]

 

上传具体实例,说明测试步骤,说明需要达到的效果。