以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] 动态增加Table的列宽设置 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=116539) |
-- 作者:2900819580 -- 发布时间:2018/3/26 16:23:00 -- [求助] 动态增加Table的列宽设置 代码如下,红色代码有问题! Dim tb As Table = Tables(e.Form.Name & "_Table1") Dim r As Row = tb.Current If r("i") = "+" Then Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1") Dim id As Integer = e.Form.Controls("TextID").text tab.TabPages.Add("明细" & id,r("名称")) \'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~· Dim tbl As WinForm.Table tbl = e.Form.CreateSQLTable("TabC" & id ,"Sel ect * From {BOM} where 父阶代码 = \'" & r("父阶代码") & "\'", "ksg") tbl.Dock = 5 tbl.Table.SetColVisibleWidth(tb.GetColVisibleWidth) ‘’‘ 此行代码无效 e.Form.Controls("TabControl1").Tabpages(id).AddControl(tbl) e.Form.Controls("TextID").text = id + 1 tab.SelectedIndex = id End If
|
-- 作者:有点甜 -- 发布时间:2018/3/26 16:39:00 -- 你现在执行后的效果是怎样的?你tb和tbl表获取的是不是同一个表【bom】?
做个实例发上来测试。 |
-- 作者:2900819580 -- 发布时间:2018/3/26 16:45:00 -- 执行的效果是这行代码没有任何动作 我试过以下两行代码都出错。 动态增加的Table 名称是什么? Tables("TabC" & id).SetColVisibleWidth(tb.GetColVisibleWidth) Tables(e.form.name & "TabC" & id).SetColVisibleWidth(tb.GetColVisibleWidth) |
-- 作者:有点甜 -- 发布时间:2018/3/26 16:53:00 -- 那就尝试改成这样,是什么效果?
tbl.Table.SetColVisibleWidth("") |
-- 作者:2900819580 -- 发布时间:2018/3/26 17:17:00 -- 没有任何作用。 |
-- 作者:有点甜 -- 发布时间:2018/3/26 17:33:00 -- 以下是引用2900819580在2018/3/26 17:17:00的发言:
没有任何作用。
那显示什么?能否不显示任意列?或者试试
e.Form.Controls("TabControl1").Tabpages(id).AddControl(tbl)
如果还是有问题,实例发出来测试。 |
-- 作者:2900819580 -- 发布时间:2018/3/26 19:07:00 -- e.Form.Controls("TabControl1").Tabpages(id).AddControl(tbl) tbl.Table.SetColVisibleWidth("") 得到结果如下 e.Form.Controls("TabControl1").Tabpages(id).AddControl(tbl) tbl.Table.SetColVisibleWidth(tb.GetColVisibleWidth) 出现以下错误 [此贴子已经被作者于2018/3/26 19:07:10编辑过]
|
-- 作者:有点蓝 -- 发布时间:2018/3/26 20:40:00 -- 7楼是重复添加了同一个名称的表。实例发上来测试 |
-- 作者:有点甜 -- 发布时间:2018/3/27 9:20:00 -- 这个红色的那个不能重复的
Dim tbl As WinForm.Table tbl = e.Form.CreateSQLTable("TabC" & id ,"Sel ect * From {BOM} where 父阶代码 = \'" & r("父阶代码") & "\'", "ksg")
比如,如果你已经添加过 table1,你就不能再新建 table1 这样的控件的,不然就报错。
如果你的table1已经存在,先要移除才能再次添加。或者是,直接使用table1,然后调用fill转换成别的表。
|
-- 作者:2900819580 -- 发布时间:2018/3/30 15:46:00 -- 如何判断表是否已经存在?以下代码不动作! 如何移除Table If Tables.Contains("TabC" & id) Then MessageBox.Show("有") End If |