以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]返回窗体中被绑定字段的控件名  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=47100)

--  作者:jnletao
--  发布时间:2014/3/4 15:29:00
--  [求助]返回窗体中被绑定字段的控件名

 

BindingField

 

字符型,返回或设置控件的绑定字段。

 

 

有没有方法或属性能 返回 当前窗体(或指定窗体)中被绑定字段的控件名


--  作者:jnletao
--  发布时间:2014/3/4 15:32:00
--  

今天学习了可视化 授权这一章,

如果 某列被禁止编辑,那么 对应 窗体中 绑定 字段的 控件是 不可输入的。

 

我还想把 这个不可输入控件 禁用。 于是想到上述问题!


--  作者:Bin
--  发布时间:2014/3/4 15:32:00
--  
窗体不可以绑定字段
--  作者:jnletao
--  发布时间:2014/3/4 15:39:00
--  
BIN老师看错了,我问的是  返回 当前窗体(或指定窗体)中被绑定字段的控件名
--  作者:Bin
--  发布时间:2014/3/4 15:41:00
--  
没明白你的意思
--  作者:Bin
--  发布时间:2014/3/4 15:42:00
--  
你可以遍历控件,一个个判断.http://www.foxtable.com/help/topics/1849.htm
--  作者:lsy
--  发布时间:2014/3/4 15:49:00
--  

绑定到表B第一列的控件:

Dim str As String
For Each c As WinForm.Control In e.Form.Controls
    If c.BindingField > "" AndAlso c.BindingField.Contains("表B.第一列") Then
        str + = c.Name & vbcrlf
    End If
Next
MessageBox.Show(str)


--  作者:jnletao
--  发布时间:2014/3/4 18:13:00
--  
谢谢 lsy和bin 老师,我已做成函数,放出来供大家参考

\'Args(0) 窗体名 Args(1) 表名,如果是子表,只输子表名,与父表无关
For Each c As WinForm.Control In Forms(Args(0)).Controls
    For Each co As Col In Tables(Args(1)).Cols
        If co.AllowEdit = False Then
            If c.BindingField > "" AndAlso c.BindingField.Contains(Args(1) & "." & co.Name) Then
                Forms(Args(0)).Controls(c.Name).Enabled = False
            End If
        End If
    Next
Next

--  作者:lsy
--  发布时间:2014/3/4 20:05:00
--  
顶楼主。