以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  动态控件位置问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=78470)

--  作者:blackzhu
--  发布时间:2015/12/9 18:22:00
--  动态控件位置问题
红袍 帮我看看这个代码,我想在标签下面加入两个其他控件,位置算的不对!

Dim dr As DataRow
Select Case e.Node.Level
    Case 1
        Dim i1 As Integer
        Dim n As Integer
        Dim index  As  Integer
        e.Form.Controls("Panel1").ClearControl
        For Each cl As DataCol In DataTables("用标签做数据浏览").DataCols
            dr = DataTables("用标签做数据浏览").Find("第一列=\'" & e.Node.DataRow("第一列") & "\' And 第二列 =\'" & e.node.DataRow("第二列") & "\' And " & cl.Name & " Is Not Null")
            If dr IsNot Nothing Then
                Dim rad As WinForm.Label
                rad = e.Form.CreateControl(cl.Name,ControlTypeEnum.label)
                rad.Font = New Font("微软雅黑",9)
                rad.Text = dr(cl.Name)
                rad.Left = 10
                rad.Top = 20 * i1
                rad.AutoSize = True
                i1 += 1
                e.Form.Controls("Panel1").AddControl(rad)
                n = rad.Top
                If cl.ExtendType = ExtendTypeEnum.Images Then
                    Dim lst As New List(of String)
                    lst = dr.Lines(cl.Name)
                    For Each ls As String In lst
                        Dim px As WinForm.PictureBox
                        px = e.Form.CreateControl(index ,ControlTypeEnum.PictureBox)
                        px.Width = 100
                        px.Height = 100
                        px.Left = 10
                        px.Top = n+(120 * index)
                        px.AutoScroll = False
                        px.Image = GetImage(ProjectPath  & "Attachments\\" & ls)
                        px.SizeMode = ImageSizeMode.Zoom
                        Index += 1
                        e.Form.Controls("Panel1").AddControl(px)
                    Next
                End If
            End If
        Next
End Select

--  作者:blackzhu
--  发布时间:2015/12/9 19:25:00
--  
大红袍帮我看看,我要新添加的图片控件在动态标签的下面
--  作者:大红袍
--  发布时间:2015/12/9 19:35:00
--  
上传例子,代码无法直接测试。
--  作者:blackzhu
--  发布时间:2015/12/9 19:39:00
--  

等等

 


[此贴子已经被作者于2015/12/9 19:39:48编辑过]

--  作者:blackzhu
--  发布时间:2015/12/9 19:47:00
--  

窗口2

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:模块功能代码.rar


--  作者:blackzhu
--  发布时间:2015/12/9 19:51:00
--  
上传了
--  作者:大红袍
--  发布时间:2015/12/9 19:52:00
--  

Dim dr As DataRow
Select Case e.Node.Level
    Case 1
        Dim index  As  Integer
        e.Form.Controls("Panel1").ClearControl
        Dim Top As Integer = 0
        For Each cl As DataCol In DataTables("用标签做数据浏览").DataCols
            dr = DataTables("用标签做数据浏览").Find("第一列=\'" & e.Node.DataRow("第一列") & "\' And 第二列 =\'" & e.node.DataRow("第二列") & "\' And " & cl.Name & " Is Not Null")
            If dr IsNot Nothing Then
                Dim rad As WinForm.Label
                rad = e.Form.CreateControl(cl.Name,ControlTypeEnum.label)
                rad.Font = New Font("微软雅黑",9)
                rad.Text = dr(cl.Name)
                rad.Left = 10
                rad.Top = top
                rad.AutoSize = True
                e.Form.Controls("Panel1").AddControl(rad)
                top += rad.height + 10
                If cl.ExtendType = ExtendTypeEnum.Images Then
                    Dim lst As New List(of String)
                    lst = dr.Lines(cl.Name)
                    For Each ls As String In lst
                        Dim px As WinForm.PictureBox
                        px = e.Form.CreateControl(index ,ControlTypeEnum.PictureBox)
                        px.Width = 100
                        px.Height = 100
                        px.Left = 10
                        px.Top = top
                        px.AutoScroll = False
                        px.Image = GetImage(ProjectPath  & "Attachments\\" & ls)
                        px.SizeMode = ImageSizeMode.Zoom
                        Index += 1
                        e.Form.Controls("Panel1").AddControl(px)
                        top += px.height + 10
                    Next
                End If
            End If
        Next
End Select


--  作者:blackzhu
--  发布时间:2015/12/9 19:57:00
--  

红袍 那个图片控件在标签中间去了

 

 

 

 


图片点击可在新窗口打开查看此主题相关图片如下:qq拼音截图未命名.png
图片点击可在新窗口打开查看

 

 

 

我需要在所有的标签下面

[此贴子已经被作者于2015/12/9 20:00:04编辑过]

--  作者:大红袍
--  发布时间:2015/12/9 20:07:00
--  

Tables("用标签做数据浏览").Position = Tables("用标签做数据浏览").FindRow(e.Node.DataRow)

Dim dr As DataRow
Select Case e.Node.Level
    Case 1
        Dim index  As  Integer
        Dim ls_img As new List(Of object)
        e.Form.Controls("Panel1").ClearControl
        Dim Top As Integer = 0
        For Each cl As DataCol In DataTables("用标签做数据浏览").DataCols
            dr = DataTables("用标签做数据浏览").Find("第一列=\'" & e.Node.DataRow("第一列") & "\' And 第二列 =\'" & e.node.DataRow("第二列") & "\' And " & cl.Name & " Is Not Null")
            If dr IsNot Nothing Then
                Dim rad As WinForm.Label
                rad = e.Form.CreateControl(cl.Name,ControlTypeEnum.label)
                rad.Font = New Font("微软雅黑",9)
                rad.Text = dr(cl.Name)
                rad.Left = 10
                rad.Top = top
                rad.AutoSize = True
                e.Form.Controls("Panel1").AddControl(rad)
                top += rad.height + 10
                If cl.ExtendType = ExtendTypeEnum.Images Then
                    Dim lst As New List(of String)
                    lst = dr.Lines(cl.Name)
                    For Each ls As String In lst
                        Dim px As WinForm.PictureBox
                        px = e.Form.CreateControl(index ,ControlTypeEnum.PictureBox)
                        px.Width = 100
                        px.Height = 100
                        px.Left = 10
                        px.Top = top
                        px.AutoScroll = False
                        px.Image = GetImage(ProjectPath  & "Attachments\\" & ls)
                        px.SizeMode = ImageSizeMode.Zoom
                        Index += 1
                        ls_img.add(px)
                    Next
                End If
            End If
        Next
        For Each img As object In ls_img
            img.Top = Top
            e.Form.Controls("Panel1").AddControl(img)
            top += img.height + 10
        Next
End Select