私は、ユーザーコントロールを作成することになりました。別の開発者の時間を節約するために、ここに作業コードを入れます。私は自分のプロジェクト(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
が、あなたはそのことができるのでラベルを使用することを検討する必要がありますペイントイベントを使用して行う必要があります。どのくらいの大きさで郵便箱を作って、ラベルを隠すかどうかは、あなた次第です。 –
PictureBoxとLabelを「ユニット」として機能させたい場合は、その中に2つのコントロールを持つ** UserControl **を作成します。ピクチャボックスが残りの領域を占めている間、ラベルが常に下部とUserControlの幅になるようにアンカープロパティを設定できます。 –
ありがとう@Idle_MindとHansPassantので、私はまったく新しいコントロールを作成する必要がありますようです。私は前にそれをしていない。私はいくつかのチュートリアルを参照する必要があります。ありがとうございました。 –