以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求功能实现,主窗口中当前控件不包含表控件的时候 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=83398) |
||||
-- 作者:lovemaders -- 发布时间:2016/4/8 8:15:00 -- 求功能实现,主窗口中当前控件不包含表控件的时候
[此贴子已经被作者于2016/4/8 11:42:55编辑过]
|
||||
-- 作者:lovemaders -- 发布时间:2016/4/8 8:19:00 -- 如图,最底下那个提示是要实现的功能,代码在项目的systemidle里面,要求是,因为这是表里的主窗口所以底下提示默认的是当前表,我想实现是,比如主界面这个窗口里面没有表,下面的那个就提示当前窗口没有表,部门因为点开之后就有个窗口表在里面,所以就直接提示是哪个表,麻烦的是公司,因为里面有个页面合集控件,默认打开第一页,第一页里面没有表,用代码切换到第二页的时候,表在第二页上,当打开默认第一页的时候因为没有表也是提示当前窗口没有表,点开第二页的时候提示是哪个表。不知道我说的明不明白具体看下项目,谢谢啦。 [此贴子已经被作者于2016/4/8 8:22:59编辑过]
|
||||
-- 作者:Hyphen -- 发布时间:2016/4/8 8:50:00 -- 用一个全局变量记录当前页,事件中遍历判断当前页是否包含表控件 |
||||
-- 作者:lovemaders -- 发布时间:2016/4/8 8:53:00 -- 这样的话 主界面和那个部门是打开就有和打开就没有可以判断,但是公司那个里面有个页面合集,是有表控件的,但是默认第一样是没有表控件的,这个怎么弄,而且我这个代码是写在systemidle事件中的不能用e.form,难道将代码写在每个窗口的afterload事件中去? [此贴子已经被作者于2016/4/8 9:12:46编辑过]
|
||||
-- 作者:大红袍 -- 发布时间:2016/4/8 9:41:00 -- 根本就无法自动检测的。你必须去写每个窗口的事件,比如 tabcontrol的选择页事件。 [此贴子已经被作者于2016/4/8 9:41:01编辑过]
|
||||
-- 作者:lovemaders -- 发布时间:2016/4/8 9:52:00 -- 那样的话相当麻烦了 那样的话相当麻烦了,每个窗口都要写代码判断啊?或者到了页面合集的时候每个页面切换都要判断啊?如果这样的话那项目命令里面的systemidle就不用写代码了,没有用systemidle代码替代每个窗口都判断的方法吗? [此贴子已经被作者于2016/4/8 9:54:13编辑过]
|
||||
-- 作者:大红袍 -- 发布时间:2016/4/8 10:06:00 -- 1、获取到当前窗口是什么窗口;
2、循环窗口所有控件,寻找TabControl;
3、然后循环Tabcontrol的当前选中页,看有没有Table。 |
||||
-- 作者:lovemaders -- 发布时间:2016/4/8 10:21:00 -- 那样的意思也是有几个窗口就要在systemidle里面全部都列进去吗? 那样的意思也是有几个窗口就要在systemidle里面全部都列进去吗?没有其他方法吗 |
||||
-- 作者:大红袍 -- 发布时间:2016/4/8 10:23:00 -- 以下是引用lovemaders在2016/4/8 10:21:00的发言:
那样的意思也是有几个窗口就要在systemidle里面全部都列进去吗?没有其他方法吗
谁叫你全部列出来啊?当前窗口你获取不到?知道窗口就可以遍历所有的控件啊。 |
||||
-- 作者:lovemaders -- 发布时间:2016/4/8 10:54:00 -- 这个代码就不对,第一个IF没执行,这是窗口afterload 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 & "】" & " 总行数:" \'\'\'Str2 = Str2 & t.Rows.Count & " 当前行:" & (t.Position + 1) End If \'\'\'If Typeof c Is WinForm.Table = False Then \'判断控件是否是文本框 \'\'\'lb2.text = "当前窗口没有表" \'\'\'End If Next End If [此贴子已经被作者于2016/4/8 11:00:11编辑过]
|