Foxtable(狐表)用户栏目专家坐堂 → 求功能实现,主窗口中当前控件不包含表控件的时候


  共有2804人关注过本帖树形打印复制链接

主题:求功能实现,主窗口中当前控件不包含表控件的时候

帅哥哟,离线,有人找我吗?
大红袍
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/8 11:05:00 [只看该作者]

1、获取不到说明没有table啊;

 

2、你还要获取tabcontrol,然后获取它里面的所有控件啊。


 回到顶部
帅哥哟,离线,有人找我吗?
lovemaders
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:723 积分:5058 威望:0 精华:0 注册:2014/12/30 16:52:00
??为什么还要先获取页面合集,?页面合集和里面的table不都是窗口中的控件吗??  发帖心情 Post By:2016/4/8 11:12:00 [只看该作者]

??为什么还要先获取页面合集,?页面合集和里面的table不都是窗口中的控件吗??难道窗口中的控件还分了级次?而且我这个示例项目里面没有页面合集。。。。。

 


图片点击可在新窗口打开查看此主题相关图片如下:zz.png
图片点击可在新窗口打开查看

 

 

 


If Forms("底部共有").Opened Then
Dim lb2 As WinForm.Label = Forms("底部共有").Controls("label2")
  For  Each c  As WinForm.Control  In Forms("部门").Controls
    If Typeof c Is winform.Table Then
         Dim tw  As WinForm.Table = Forms("部门").Controls("table1")  'c '使用特定类型的变量引用控件      
         Dim Str2 As String = "正操作表名为:" & "【" & tw.Name & "】" & "  总行数:"
         lb2.text = str2
    End If
  Next
End If
这样写都不执行
 
 
 
好像可以执行了,就是systemidle那个代码怎么写通用的不会写,这样在每个窗口的afterload里面写太麻烦了。帮忙写一下吧。

 

而且奇怪的是

 

 

代码加上else之后

 

 

If Forms("底部共有").Opened Then
Dim lb2 As WinForm.Label = Forms("底部共有").Controls("label2")
  For  Each c  As WinForm.Control  In Forms("部门").Controls
    If Typeof c Is winform.Table Then
         Dim tw  As WinForm.Table = Forms("部门").Controls("部门")  'c '使用特定类型的变量引用控件
         Dim Str2 As String = "正操作表名为:" & "【" & tw.Name & "】" & "  总行数:"
         '''Str2 = Str2 & t.Rows.Count & "  当前行:" & (t.Position + 1)
         lb2.text = str2
    Else
       If Typeof c Is WinForm.Table = False  Then  '判断控件是否是文本框
            lb2.text = "当前窗口没有表"

       end if
    End  If
  Next
End If

 

 

确执行else,不执行前面的if了,不加else是对的,加了else反而执行else了。真是奇怪了,没有else的时候执行的对,有了else竟然执行else后面的代码了,if不是有限执行前半段代码吗

 

 

我重新上传了例子,

[此贴子已经被作者于2016/4/8 11:44:01编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/8 11:47:00 [只看该作者]

If Forms("底部共有").Opened Then
    'With  CurrentTable
    Dim lb2 As WinForm.Label = Forms("底部共有").Controls("Label2")
    Dim Str2 As String = ""
    For  Each c  As WinForm.Control  In Forms(MainTable.name).Controls
        If Typeof c Is winform.Table Then
            Dim tw  As WinForm.Table = c
            str2 = "正操作表名为:" & "【" & tw.Name & "】" & "  总行数:"
        End If
    Next
    If str2 = "" Then
        str2 = "当前窗口没有表"
    End If
    lb2.text = Str2
End If

 回到顶部
帅哥哟,离线,有人找我吗?
lovemaders
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:723 积分:5058 威望:0 精华:0 注册:2014/12/30 16:52:00
怎么加上这句  发帖心情 Post By:2016/4/8 12:06:00 [只看该作者]


            Dim tw  As WinForm.Table = c
            str2 = "正操作表名为:" & "【" & tw.Name & "】" & "  总行数:"
            'Str2 = Str2 & tw.Rows.Count & "  当前行:" & (tw.Position + 1)

 

 

你上面写代码中,怎么把'Str2 = Str2 & tw.Rows.Count & "  当前行:" & (tw.Position + 1)这句加上,因为tw.rows.count出错,说是窗口表没这个属性


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/8 12:07:00 [只看该作者]

Str2 = Str2 & tw.Table.Rows.Count & "  当前行:" & (tw.Table.Position + 1)

 回到顶部
帅哥哟,离线,有人找我吗?
lovemaders
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:723 积分:5058 威望:0 精华:0 注册:2014/12/30 16:52:00
OK这个搞定了,就剩下最后一种有页面合集的情况了  发帖心情 Post By:2016/4/8 12:18:00 [只看该作者]

如图,怎么在代码上改,现在的代码是

 

If Forms("底部共有").Opened Then
    ''''''With  CurrentTable
    Dim lb2 As WinForm.Label = Forms("底部共有").Controls("Label2")
    Dim Str2 As String = ""
    For  Each c  As WinForm.Control  In Forms(MainTable.name).Controls
        If Typeof c Is winform.Table Then
            Dim tw  As WinForm.Table = c
            str2 = "正操作表名为:" & "【" & tw.Name & "】" & "  总行数:"
            Str2 = Str2 & tw.Table.Rows.Count & "  当前行:" & (tw.Table.Position + 1)            
        End If
    Next
    If str2 = "" Then
        str2 = "当前窗口没有表"
    End If
    lb2.text = Str2
End If


图片点击可在新窗口打开查看此主题相关图片如下:yy.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/8 12:37:00 [只看该作者]

先查找TabControl,然后循环选中页里面的所有控件,看有没有table


 回到顶部
帅哥哟,离线,有人找我吗?
lovemaders
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:723 积分:5058 威望:0 精华:0 注册:2014/12/30 16:52:00
这句能改吗  发帖心情 Post By:2016/4/8 18:14:00 [只看该作者]

For  Each c  As WinForm.Control  In Forms(MainTable.name).Controls

 

这句代码能改吗,这样写的话,窗口名字必须与表名一样才行,要不然就报错,但是实际上,这个窗口名字未必与表名一样,但是,这个窗口确是主窗口,主窗口只能有一个,根据这个怎么改这句代码呢,改成窗口的名字是打开的表的主窗口的名字而不一定是跟表名一样?


 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/4/9 9:12:00 [只看该作者]

Dim frm As WinForm.Form
For Each f As WinForm.Form In  Forms
    If f.TableName = MainTable.Name And f.FormStyle = 5  Then 
        frm = f
        Exit For
    End If
Next


For  Each c  As WinForm.Control  In frm.Controls


 回到顶部
总数 19 上一页 1 2