Foxtable(狐表)用户栏目专家坐堂 → 动态增加表控件


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

主题:动态增加表控件

帅哥哟,离线,有人找我吗?
无限5180
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:283 积分:2776 威望:0 精华:0 注册:2012/10/26 0:45:00
动态增加表控件  发帖心情 Post By:2015/8/5 15:25:00 [只看该作者]

图片点击可在新窗口打开查看 

        Dim tb As WinForm.Table
        tb = e.Form.CreateTable("Table3","全表",True)
        tb.SetBounds(10,20,580, 200)
        e.Form.Controls("统计2").AddControl(tb)
        tb.Dock = 5
        tb.width=  tb.Parent.width
        tb.Height =  tb.Parent.Height

用button控件 click事件进行动态添加表,第一次点击没问题再次点击就会出现错误,显示:“已添加了具有相同键的项”,请问如何设置代码
       

[此贴子已经被作者于2015/8/5 15:33:49编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106672 积分:542549 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2015/8/5 15:31:00 [只看该作者]

再次点击按钮的时候要把之前的控件删除啊,要不然冲突了

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


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

If e.Form.Controls.Contains("Table3") Then
    Dim tb As Table = e.Form.Controls("table3").Table
    tb.datasource = DataTables("全表")
Else
    Dim tb As WinForm.Table
    tb = e.Form.CreateTable("Table3","全表",True)
    tb.SetBounds(10,20,580, 200)
    e.Form.Controls("统计2").AddControl(tb)
    tb.Dock = 5
    tb.width=  tb.Parent.width
    tb.Height =  tb.Parent.Height
End If


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


加好友 发短信
等级:童狐 帖子:283 积分:2776 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2015/8/5 15:35:00 [只看该作者]

谢谢

 


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


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

或者Remove掉

 

If e.Form.Controls.Contains("Table3") Then
    e.Form.Controls("统计2").RemoveControl("Table3")
End If

Dim tb As WinForm.Table
tb = e.Form.CreateTable("Table3","全表",True)
tb.SetBounds(10,20,580, 200)
e.Form.Controls("统计2").AddControl(tb)
tb.Dock = 5
tb.width=  tb.Parent.width
tb.Height =  tb.Parent.Height

[此贴子已经被作者于2015/8/5 16:22:02编辑过]

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


加好友 发短信
等级:童狐 帖子:283 积分:2776 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2015/8/5 15:36:00 [只看该作者]

两个方法试过了,还是不行啊,显示的错误仍是:“添加了具有相同键的项”
[此贴子已经被作者于2015/8/5 15:38:37编辑过]

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


加好友 发短信
等级:版主 帖子:1693 积分:12117 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2015/8/5 15:45:00 [只看该作者]

还是设一个全局计数变量吧


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


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

下面的代码我测试了一下,没有问题

 

If e.Form.Controls.Contains("Table9") Then
    Dim tb As Table = e.Form.Controls("table9").Table
    tb.datasource = DataTables("表A")
Else
    Dim tb As WinForm.Table
    tb = e.Form.CreateTable("Table9","表A",True)
    tb.SetBounds(10,20,580, 200)
    e.Form.AddControl(tb)
    'tb.Dock = 5
    'tb.width=  tb.Parent.width
    'tb.Height =  tb.Parent.Height
End If


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


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

这样也行

 

If e.Form.Controls.Contains("Table10") Then
    e.Form.RemoveControl("table10")
End If

Dim tb As WinForm.Table
tb = e.Form.CreateTable("Table10","表A",True)
tb.SetBounds(10,20,580, 200)
e.Form.AddControl(tb)


 回到顶部