Foxtable(狐表)用户栏目专家坐堂 → [求助]代码错误


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

主题:[求助]代码错误

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
[求助]代码错误  发帖心情 Post By:2017/8/18 13:46:00 [只看该作者]

 老师,
   下面标颜色的代码有误,劳烦您给看下


Dim tbl As WinForm.TabControl = e.Form.CreateControl("tbl_01", ControlTypeEnum.TabControl)
e.Form.AddControl(tbl)
Dim panl As  WinForm.Panel=e.Form.CreateControl("pl_01", ControlTypeEnum.Panel)
Dim spl As WinForm.SplitContainer=e.Form.CreateControl("spl_01", ControlTypeEnum.SplitContainer)
spl.Dock=5
panl.AddControl(spl)
MessageBox.Show(5)
tbl.TabPages(0).AddControl(panl)
MessageBox.Show(6)

Dim w As Integer=tbl.TabPages("1").Width
Dim h As Integer=tbl.TabPages("1").Height
If w-350<=0 Then
    spl.SplitterDistance =w*0.2'必须是添加控件后添加的属性
Else
      spl.SplitterDistance =350'必须是添加控件后添加的属性
End If

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/8/18 14:28:00 [只看该作者]

代码增加的tab是没有页面的

Dim p As WinForm.TabPage = tbl.TabPages.Add("page1","page1")
p.AddControl(panl)

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/8/18 15:54:00 [只看该作者]

 老师,

Dim tab As WinForm.TabControl = args(0)
Dim dr As DataRow = args(1)
Dim e As object=args(2)


Dim dt As DataTable = dr.DataTable
Dim drs As List(of DataRow) = dt.Select("编码规则 like '" & dr("编码规则") & "%' and 编码级次 = '" & dr("编码级次")+1 & "'")
If drs.count > 0 Then
    Dim ctab As WinForm.TabControl
    ctab = tab.Form.CreateControl("tab_" & dr("编码规则"), ControlTypeEnum.tabcontrol)
    ctab.Dock = 5
    Dim panel As WinForm.panel
    panel = tab.Form.CreateControl("pal_" & dr("编码规则"), ControlTypeEnum.panel)
    panel.Dock = 5
    panel.AddControl(ctab)
    For Each cdr As DataRow In drs
        ctab.TabPages.Add(cdr("编码规则"), cdr("编码名称")).Dock = 5
        Functions.Execute("loop2", ctab, cdr,e)
        ctab.TabPages(cdr("编码规则")).Dock = 5
    Next

    tab.TabPages(dr("编码规则")).AddControl(panel)
    'tab.TabPages(dr("编码规则")).Visible=False
    MessageBox.Show(tab.TabPages(dr("编码规则")).name & "," &tab.TabPages(dr("编码规则")).Width)‘这块长度还是有问题,不知道为什么第一页的页面大小不正确,导致后面出错。
[此贴子已经被作者于2017/8/21 9:21:47编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/8/18 15:55:00 [只看该作者]

 Dim pg As WinForm.TabPage=tab.TabPages(dr("编码规则"))
    'e.Form.StopRedraw
    Dim s1 As WinForm.SplitContainer=e.ForM.CreateControl("SPL_" & dr("编码规则") & "_01",ControlTypeEnum.SplitContainer)
    S1.Dock=5
    Dim s2 As WinForm.SplitContainer=e.ForM.CreateControl("SPL_" & dr("编码规则") & "_02",ControlTypeEnum.SplitContainer)
    S2.Dock=5
    Dim s3 As WinForm.SplitContainer=e.ForM.CreateControl("SPL_" & dr("编码规则") & "_03",ControlTypeEnum.SplitContainer)
    S3.Dock=5
    S3.Orientation=0
    Dim s4 As WinForm.SplitContainer=e.ForM.CreateControl("SPL_" & dr("编码规则") & "_04",ControlTypeEnum.SplitContainer)
    S4.Dock=5
    S4.Orientation=0
    S1.Panel2.AddControl(S2)
    S1.Panel1.Collapsed=True
    S2.Panel1.AddControl(S3)
    S2.Panel2.Collapsed=True
    S3.Panel2.AddControl(S4)
    S3.Panel1.Collapsed=True
    S1.FixedPanel=1
    S2.FixedPanel=2
    S3.FixedPanel=1
    S4.FixedPanel=2
    pg.AddControl(S1)
    s1.Dock=5'这块是页面添加
    Dim zd As New Dictionary(Of String, object)
    zd.Add("01",S1.Panel1)
    zd.Add("02",S2.Panel2)
    zd.Add("03",S3.Panel1)
    zd.Add("04",S4.Panel2)
    zd.Add("05",S4.Panel1)
    
    For Each k As String In zd.Keys '显示所有键及其对应的值
        Dim dr2 As DataRow=DataTables("AS002控件").find("编码规则='"& K &"' And 权限编码='"& dr("编码规则") &"'")
        If dr2 IsNot Nothing Then
            Functions.Execute("addc",e,zd(k), dr2)
            zd(k).Collapsed=False
        Else
            zd(k).Collapsed=True
        End If
    Next
    
   
    
    Dim w As Integer=e.Form.Width
    Dim h As Integer=e.Form.Height
    ‘以上代码没有问题,现在就卡在首页的高度不正确?
    S1.SplitterDistance =200'必须是添加控件后添加的属性
    S2.SplitterDistance =w-200-80'必须是添加控件后添加的属性
    S3.SplitterDistance =50'必须是添加控件后添加的属性
    S4.SplitterDistance = h-300-50-50'必须是添加控件后添加的属

    S1.IsSplitterFixed=True
    S2.IsSplitterFixed=True
    S3.IsSplitterFixed=True
    S4.IsSplitterFixed=True
    e.Form.ResumeRedraw

[此贴子已经被作者于2017/8/18 16:04:05编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/8/18 15:56:00 [只看该作者]

.NET Framework 版本:2.0.50727.3053
Foxtable 版本:2017.8.11.1
错误所在事件:自定义函数loop2
详细错误信息:
调用的目标发生了异常。
SplitterDistance 必须在 Panel1MinSize 和 Width - Panel2MinSize 之间。


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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/8/18 16:00:00 [只看该作者]

3楼的提示,为啥首页的宽度是198与其他的页宽不一致,批量添加的,为啥不一样?神奇

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20170818155813.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/8/18 16:06:22编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/8/18 16:01:00 [只看该作者]

4楼的窗口的高和宽没有调整正确。应该怎么调整呢?

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/8/18 16:14:00 [只看该作者]

做个内部表的实例上传看看

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/8/21 8:43:00 [只看该作者]

老师,
    用上例子吗?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/21 9:10:00 [只看该作者]

回复5楼。

 

msgbox(w-200-80)

S2.SplitterDistance = iif(w-200-80>=10, w-200-80, 10)'必须是添加控件后添加的属性

 

必须判断设置的值是否大于10


 回到顶部
总数 12 1 2 下一页