带有VB.NET标题的Picturebox

时间:2017-11-27 12:20:31

标签: vb.net custom-controls picturebox captions

如何设置带有标题的图片框(控件)?我已经可以在这个图片框上添加文字,但我想在图片框下面。但是,如果文本的位置超出了Picturebox的大小,则它将不可见。如果文本有一个边界和&背景颜色。

请帮忙。

以下是代码:

Public Class neoPic
   Inherits PictureBox
   Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
       MyBase.OnPaint(e)
       e.Graphics.DrawString("Caption ", New Font("Cambria", 10), Brushes.Black, New PointF(0, 60))
   End Sub
End Class

1 个答案:

答案 0 :(得分:0)

我最终创建了一个UserControl。我把工作代码放在这里,以防它节省了另一个开发人员的时间。我在我的项目中添加了一个UserControl(名为PicTitled),并添加了一个Picturebox(名为PTPicturebox)和一个Label(名为PTLabel)相互堆叠。 然后我添加了Text& PicTitled的图像属性和鼠标单击的事件处理程序。

Public Class PicTitled
    Public Shadows Event MouseClick As MouseEventHandler


    Overrides Property Text As String
        Get
            Return PTLabel.Text
        End Get
        Set(ByVal Value As String)
            PTLabel.Text = Value
        End Set
    End Property

    Property Image As Image
        Get
            Return PTPicturebox.Image
        End Get
        Set(ByVal Value As Image)
            PTPicturebox.Image = Value
        End Set
    End Property

    Private Sub PicTitled_MouseClick(sender As Object, e As MouseEventArgs) Handles MyBase.MouseClick, PTPicturebox.MouseClick, PTLabel.MouseClick
        RaiseEvent MouseClick(Me, e)
    End Sub


End Class

在主要表单中,我添加了一个代码:

    Private Sub CreateObj()
        Dim pbPicture As New PicTitled
        pbPicture.Name = "Object"
        pbPicture.Location = New System.Drawing.Point(40, 40)
        pbPicture.Text = "Object"
        pbPicture.Image = My.Resources.IMG
        pbPicture.Size = New System.Drawing.Size(50, 50)
        AddHandler pbPicture.MouseClick, AddressOf PictureBox_MouseClick

        Panel1.Controls.Add(pbPicture)
    End Sub

    Private Sub PictureBox_MouseClick(sender As Object, e As MouseEventArgs)
        'Do stuff when mouse click happens...
    End Sub