2017-11-27 42 views
0

キャプション付きのピクチャボックス(コントロール)を使用するにはどうすればよいですか?私はすでにこの絵文字にテキストを追加することができますが、絵文字の下に置いておきます。しかし、テキストの位置がPictureboxのサイズを超えていれば、それは見えません。テキストに境界線がある場合は、&背景色も良いでしょう。VBboxでキャプション付きピクチャボックス

助けてください。ここで

は、コードは次のとおりです。

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 
+2

が、あなたはそのことができるのでラベルを使用することを検討する必要がありますペイントイベントを使用して行う必要があります。どのくらいの大きさで郵便箱を作って、ラベルを隠すかどうかは、あなた次第です。 –

+3

PictureBoxとLabelを「ユニット」として機能させたい場合は、その中に2つのコントロールを持つ** UserControl **を作成します。ピクチャボックスが残りの領域を占めている間、ラベルが常に下部とUserControlの幅になるようにアンカープロパティを設定できます。 –

+0

ありがとう@Idle_MindとHansPassantので、私はまったく新しいコントロールを作成する必要がありますようです。私は前にそれをしていない。私はいくつかのチュートリアルを参照する必要があります。ありがとうございました。 –

答えて

0

私は、ユーザーコントロールを作成することになりました。別の開発者の時間を節約するために、ここに作業コードを入れます。私は自分のプロジェクト(PicTitledという名前の)にUserControlを追加し、PictureBox(PTPicturebox)とLabel(PTLabelという名前)を重ねて追加しました。 次に、PicTitledのTextプロパティ& Imageプロパティとマウスクリックのイベントハンドラを追加しました。

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  
関連する問題