以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如果当前表被锁定,则Click事件弹出窗口都被锁定  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=49563)

--  作者:chnfo
--  发布时间:2014/4/20 13:50:00
--  [求助]如果当前表被锁定,则Click事件弹出窗口都被锁定
表的click事件:
Select Case e.Col.Name
    Case "Code"
        Forms("窗口1").open()
End Select

窗口1的AfterLoad事件
‘第一种方法,不能锁定Tab分页夹的子表(子表是一个SqlTable,是在这个Tab中插入了一个SplitContainer分隔开来的
‘这里面的主表都是Norm类型的,绑定了数据表且设为了副本且设为允许编辑’
For Each wc As WinForm.Control In e.Form.Controls
    If Typeof wc Is winform.Table Then
        Dim wt As winform.Table = wc
        wt.Table .AllowEdit = ( Tables("表A").Current IsNot Nothing AndAlso Tables("表A").Current("Audit") = False )
    End If
Next

\'第二种方法好象更无效,因为使用了SplitContainer控件,所以直属于TabPage的控件只有表,这个问题找到
For Each  pg As WinForm.TabPage In  e.Form.Controls("TabControl1").TabPages
    For Each c As WinForm.Control In pg.Children
        If Typeof c Is WinForm.Table Then
            Dim tb As winform.Table = c
        wt.Table .AllowEdit = ( Tables("表A").Current IsNot Nothing AndAlso Tables("表A").Current("Audit") = False )
        End If
    Next
Next

请教各位,问题在哪里呢?
[此贴子已经被作者于2014-4-20 14:13:17编辑过]

--  作者:有点甜
--  发布时间:2014/4/20 14:10:00
--  

 第二种方法无效?不应该,是否有例子?

 

 你msgbox弹出一下内容看看。


--  作者:chnfo
--  发布时间:2014/4/20 14:19:00
--  
第二种方法好象更无效,因为使用了SplitContainer控件,所以直属于TabPage的控件只有表,这个问题找到

---第二种方法有效。刚测试过,但因为我在TabPage里又嵌了SplitContainer控件,所以表面看起来无效。
如果是表直接放在TabPage里,就没有问题 

我更想知道的是为什么第一种方法控制不到子表。

--  作者:jspta
--  发布时间:2014/4/20 14:21:00
--  
不是很清楚要干什么,表锁定就不弹出窗口?

表的click事件:
Select Case e.Col.Name
    Case "Code"
if e.table.allowedit = true then 
        Forms("窗口1").open()
end if
End Select

--  作者:chnfo
--  发布时间:2014/4/20 14:27:00
--  
不好意思,我在子表里加了一个allowedit=true.

疏忽疏忽。