以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助,我想在图片控件下面加入标签,这个标签的TOP位置应该怎么修改?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99152)

--  作者:blackzhu
--  发布时间:2017/4/13 14:30:00
--  求助,我想在图片控件下面加入标签,这个标签的TOP位置应该怎么修改?
   Dim x, y, i1, i2 As Integer
        e.Form.StopRedraw()
        e.Form.Controls(Me.PanelName).ClearControl()
        e.Form.Controls(Me.PanelName).BackColor = Color.WhiteSmoke
        i2 = FileSys.GetFiles(Me.GetPath).Count
        Dim Values As New List(Of String)
        For Each File As String In FileSys.GetFiles(Me.GetPath)
            If File.Contains(".jpg") Then
                Values.Add(File)
            End If
        Next
        Dim ls_img As New List(Of Object)
        Dim Top As Integer = 0
        Dim phx As WinForm.PictureBox
        Dim lbl As WinForm.Label
        For y = 0 To Math.Ceiling(i2 / 5) - 1
            For x = 0 To 4
                If Values.Count > i1 Then
                    phx = e.Form.CreateControl(Values(i1).Replace(".jpg", ".mp4"), ControlTypeEnum.PictureBox)
                    phx.Width = 200
                    phx.Height = 200
                    phx.Font = New Font("微软雅黑", 10)
                    phx.Left = 30 + (210 * x) + 30
                    phx.Top = 2 + (210 * y) + 30
                    phx.BackColor = Color.Transparent
                    phx.Image = GetImage(Values(i1))
                    phx.AutoScroll = False
                    e.Form.Controls(Me.PanelName).AddControl(phx)
                    i1 += 1
                    lbl = e.Form.CreateControl(Values(i1).Replace(".jpg", ".mp4") & "Text", ControlTypeEnum.Label)
                    lbl.Text = FileSys.GetName(Values(i1)).Split(".")(0)
                    lbl.Font = New Font("微软雅黑", 9)
                    lbl.Width = 200
                    lbl.Height = 42
                    lbl.Left = 30 + (210 * x) + 30
                    lbl.Top = (2 + (210 * y) + 30) + (210 * y) + 30
                    lbl.AutoSize = False
                    i1 += 1
                    e.Form.Controls("Panel1").AddControl(lbl)
                End If
            Next
        Next
        e.Form.ResumeRedraw()
    End Sub

--  作者:有点蓝
--  发布时间:2017/4/13 14:49:00
--  
试试

lbl.Top = phx.Top + phx.Height + 30

--  作者:blackzhu
--  发布时间:2017/4/13 14:54:00
--  
不行 被底下的图片控件遮住了
--  作者:有点色
--  发布时间:2017/4/13 15:02:00
--  
以下是引用blackzhu在2017/4/13 14:54:00的发言:
不行 被底下的图片控件遮住了

 

你指定图片的top不正确。

 

phx.Top = 2 + (260 * y) + 30


--  作者:blackzhu
--  发布时间:2017/4/13 15:05:00
--  
我都不想骂人, 我开始写的时候就是这样写的,结果发现上下图片的大小不一致了,我就改了,没想到怎么改都不对!


难道是刚才因为电脑卡,没有显示完整?