说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

请各位帮我看一小段代码,谢谢!

编辑:说三道四文库 发布时间:2018-07-18 10:42
HTML文档下载 WORD文档下载 PDF文档下载
Private Sub form_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Click
            Call Load_stationLbl("abcd", 12, 20)
End Sub

Private Sub Load_stationLbl(ByVal name As String, ByVal x As Integer, ByVal y As Integer)
        Dim Sta_lbl As New Label

        Me.PictureBox1.Controls.Add(Sta_lbl)

        Sta_lbl.Name = name
        Sta_lbl.BackColor = Color.Transparent
        Sta_lbl.Cursor = System.Windows.Forms.Cursors.SizeAll
        Sta_lbl.ImageAlign = ContentAlignment.TopCenter
        Sta_lbl.Text = name
        Sta_lbl.TextAlign = ContentAlignment.BottomCenter
        Sta_lbl.Size = New System.Drawing.Size(80, 30)
        Sta_lbl.ForeColor = Color.Black
        Sta_lbl.Left = x
        Sta_lbl.Top = y
        AddHandler Sta_lbl.MouseMove, AddressOf MyMouseMove
End Sub

Public Sub MyMouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        Dim p As Point
        If e.Button = MouseButtons.Left Then
            sender.Location = New Point(sender.Left + e.X - p.X, sender.Top + e.Y - p.Y)
        End If
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim con As Control
        For Each con In Me.PictureBox1.Controls
            If Not (con Is Nothing) Then
                con.Dispose()
                con = Nothing
            End If
        Next
End Sub
如果我只单击一次窗体,也就是执行一次form_click,这样只加载一个控件,在执行Button1_Click时能卸载掉label控件。而如果我执行两次form_click,加载了两个控件,在执行button1_click时就只卸载一个,还有一个没卸载掉。这是为什么呢?请各位帮我看看!谢谢

帮你Up
将移除部分的代码给成下面的样子:

Dim con As Control

For I As Integer = PictureBox1.Controls.Count - 1 To 0 Step -1
    con = PictureBox1.Controls(I)
    If Not (con Is Nothing) Then
         con.Dispose()
         con = Nothing
         PictureBox1.Controls.Remove(con)
    End If
Next

就是说:要从后向前移除,否则容器内的控件的索引值 会在移除过程中发生变化
原来这样啊,非常感谢rzpc(淡蓝色),同时也感谢qsc800528(星空)。谢谢!       结贴了!

rzpc(淡蓝色)兄:能否留下联系方式?比如QQ、MSN
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘