以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助:内部函数里锁定窗体表的方法。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=47444)

--  作者:ndxfke
--  发布时间:2014/3/10 16:16:00
--  求助:内部函数里锁定窗体表的方法。
在权限管理内部函数里,我想把的编辑权给管理起来。

用以下代码,把表给禁用掉了。不妥
    For Each wc As WinForm.Control In Forms(_WinName).Controls
        If Typeof wc Is winform.Table Then
            wc.Enabled = false
        End If

    Next


想用 AllowEdit =false 又报错。求教....

    For Each wc As WinForm.Control In Forms(_WinName).Controls
        If Typeof wc Is winform.Table Then
            wc.AllowEdit =false
        End If

    Next

追加一个问题,如果我的窗体中有3个Tapage,每个Tapage里又有关联表。这段代码该怎么写呢?




--  作者:Bin
--  发布时间:2014/3/10 16:18:00
--  
For Each wc As WinForm.Control In Forms(_WinName).Controls
        If Typeof wc Is winform.Table Then
            wc.Table .AllowEdit =false
        End If

    Next

--  作者:ndxfke
--  发布时间:2014/3/10 16:26:00
--  

报错。。

图片点击可在新窗口打开查看
--  作者:Bin
--  发布时间:2014/3/10 16:33:00
--  
先转为表控件

If Typeof wc Is winform.Table Then
   dim wt as winform.Table = wc
   wt.Table .AllowEdit =false
 End If

--  作者:ndxfke
--  发布时间:2014/3/10 16:36:00
--  
OK.第一个问题快速地解决了。
类似这样的,貌似没帮助噢。

还有第二个。
追加一个问题,如果我的窗体中有3个Tapage,每个Tapage里又有关联表。这段代码该怎么写呢?


--  作者:Bin
--  发布时间:2014/3/10 16:39:00
--  
If Typeof wc Is winform.TabControl Then
  dim tc as winform.TabControl=wc
  for each tp as winform.TabPage  in tc.TabPages
      for each c As WinForm.Control In tp.Children
           
      next
  next
end if

--  作者:ndxfke
--  发布时间:2014/3/10 17:22:00
--  
刚发现,Tabcontrol 还放在了Groupbox里面。

代码应该升级为………

 if typeof wc is winform.Groupbox then
dim gb as winform.groupbox = wc

      ...... 不会写了 ..... 

  for each tp as winform.TabPage  in tc.TabPages
      for each c As WinForm.Control In tp.Children
           ......code.......
      next
  next
end if

--  作者:Bin
--  发布时间:2014/3/10 17:24:00
--  
一样的,稍微变动一下就不会了吗

先转换为 groubox 然后再遍历它的 Children

--  作者:ndxfke
--  发布时间:2014/3/10 17:54:00
--  
虚心受教。

照葫芦划出来的,就是不对。帮看下错在哪。

        If Typeof wc Is winform.GroupBox Then
            Dim gb As winform.Groupbox = wc
            For Each ct As winform.Control In gb.children
                If Typeof ct Is winform.TabControl Then
                    Dim tc As winform.TabControl = ct
                    For Each tp As WinForm.TabPage In tc.tabpages
                        For Each c As WinForm.Control In tp.Children
                            If Typeof c Is winform.Table Then
                                Dim wt As winform.Table = c
                                wt.Table .AllowEdit =False
                            End If
                        Next
                    Next
                End If
            Next
        End If

--  作者:Bin
--  发布时间:2014/3/10 17:55:00
--  
提示什么错误? 不行就上个例子看看. 一眼看过去代码并没有错误.