VB.NET在鼠标输入时显示标签

时间:2015-04-11 12:30:01

标签: vb.net

我有一个代码,可以在屏幕一侧制作小盒子,当鼠标悬停在屏幕上时,它会增长并在标签中显示信息。我怎么能这样做?目前,表格没有注册标签。

这是制作表格和标签的按钮。

Private Sub MakeForm()
    Dim number As Integer = 1
    Dim xaxis As Integer = 0
    Dim yaxis As Integer = 0
    Dim formlist As New List(Of Form)
    Dim index As Integer = 0
    For Each x In lstDate.Items
        Dim frm As New Form
        frm.Name = "frm" & number
        frm.Text = "New Form"
        frm.StartPosition = FormStartPosition.Manual
        frm.FormBorderStyle = Windows.Forms.FormBorderStyle.None
        frm.TopMost = True
        frm.Opacity = 0.4
        Dim lbl As New Label
        lbl.Text = x & vbNewLine & lstAssignments.Items.Item(index) & vbNewLine & lstAN.Items.Item(index)
        lbl.ForeColor = Color.White
        frm.Controls.Add(lbl)
        lbl.Hide()
        AddHandler frm.MouseEnter, AddressOf frm_MouseEnter
        AddHandler frm.MouseLeave, AddressOf frm_MouseLeave
        If DateDiff(DateInterval.Day, Now(), x) <= 1 Then
            frm.BackColor = Color.Red
        Else
            frm.BackColor = Color.Black
        End If
        frm.AllowTransparency = True
        formlist.Add(frm)
        frm.Show()
        number += 1
        frm.Size = New Size(20, 50)
        frm.Location = New Point(My.Computer.Screen.Bounds.Size.Width - frm.Width, yaxis)
        yaxis += frm.Height + 10
        index += 1
    Next
End Sub

这是鼠标输入的代码

Private Sub frm_MouseEnter(ByVal sender As System.Object, ByVal e As EventArgs)
    Dim frm1 As Form = DirectCast(sender, Form)
    Dim lbl As Label = New Label
    lbl.Show()
    frm1.Opacity = 1
    frm1.BringToFront()
    frm1.Size = New Size(200, 100)
    Dim test As Integer = 1
    Dim counter As Integer = 0
    Dim yaxis As Integer = 0
    Dim fin As Boolean = False
    Do Until fin = True
        If frm1.Name = "frm" & test Then
            yaxis = counter
            fin = True
        Else
            counter += 60
            test += 1
        End If
    Loop
    frm1.Location = New Point(My.Computer.Screen.Bounds.Size.Width - frm1.Width, yaxis)

End Sub

这是鼠标离开的代码

Private Sub frm_MouseLeave(ByVal sender As System.Object, ByVal e As EventArgs)
    Dim frm1 As Form = DirectCast(sender, Form)
    frm1.Opacity = 0.4
    frm1.BringToFront()
    frm1.Size = New Size(20, 50)
    Dim test As Integer = 1
    Dim counter As Integer = 0
    Dim yaxis As Integer = 0
    Dim fin As Boolean = False
    Do Until fin = True
        If frm1.Name = "frm" & test Then
            yaxis = counter
            fin = True
        Else
            counter += 10 + frm1.Height
            test += 1
        End If
    Loop
    frm1.Location = New Point(My.Computer.Screen.Bounds.Size.Width - frm1.Width, yaxis)
End Sub

谢谢!

0 个答案:

没有答案