以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请教胡大,如何通过表名称获得所在的窗口表控件名 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=26416) |
-- 作者:sgs -- 发布时间:2012/12/3 18:20:00 -- 请教胡大,如何通过表名称获得所在的窗口表控件名 窗口中有个table控件,如果仅仅知道table的名称,能否获得所在窗口表控件的名称 注:我这个表名有多个下划线。所以通过下划线方法截取窗口名可能行不通 有没有类似table.winform.table.form之类的方法,请指教
我说的有点绕,意思是这样的:
Dim t As
Table = Tables("窗口1_Table1") 前提是不知道窗口的名称,也不固定下划线 [此贴子已经被作者于2012-12-3 18:43:44编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2012/12/4 8:57:00 -- 这个没有办法知道的。 |
-- 作者:lin_hailun -- 发布时间:2012/12/4 9:08:00 -- 没看懂,不是可以对表名进行处理的么? 比如最后一个下划线,然后获得控件名(除非你这个控件名有多个下划线) |
-- 作者:sgs -- 发布时间:2012/12/4 9:08:00 -- 既然知道winform.table绑定的table名称是 dim frm as winform.form = forms("窗口1") Dim t As Table = frm.controls("Table1").table 假如知道了t的类型不属于(Normal,且非副本) 那么 Select Case t.TableType End Select 胡大想想办法呗 |
-- 作者:sgs -- 发布时间:2012/12/4 10:07:00 -- 请教胡大,如果此路不通,有无变通方法 |
-- 作者:lin_hailun -- 发布时间:2012/12/4 10:24:00 -- 没有变通的方法,只有查找的方法。走到这一步,是否项目设计估计出现问题了,说说你要实现的。 查找的方法就是:用_分割出字符串,查找满足分割字符的窗口,然后遍历窗口,查找满足字符的控件。 直接获取应该是不行的,因为窗口表没有所谓的从属关系,只是使用窗口名和控件名确保表名的唯一,仅此而已。 [此贴子已经被作者于2012-12-4 10:24:39编辑过]
|
-- 作者:sgs -- 发布时间:2012/12/4 10:40:00 -- 看来还是要改下窗口表的名称了,主要是原来的窗口表有多个下划线,所以才想用其他方式获得table控件名称
|
-- 作者:狐狸爸爸 -- 发布时间:2012/12/4 10:41:00 -- For Each f As winform.Form In Forms
测试通过,预览窗口不行,正常打开窗口可以。 |