내가 UserControl을을 만들 결국 :
여기에 코드입니다. 다른 개발자의 시간을 절약 할 수 있도록 작업 코드를 여기에 넣었습니다. 내 프로젝트 (PicTitled라는)에 UserControl을 추가하고 PictureBox (PTPicturebox) 및 Label (PTLabel)을 서로 쌓아 추가했습니다. 그런 다음 PicTitled에 대한 텍스트 & 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
은 다음 '그 수 있기 때문에 레이블 사용을 고려해야합니다을 Paint 이벤트로 처리 할 수 있습니다. pbox를 얼마나 크게 만들었으며 라벨을 숨길 지 여부는 전적으로 귀하에게 달려 있습니다. –
PictureBox와 Label을 "단위"로 사용하려면 해당 컨트롤이있는 ** UserControl **을 만듭니다. PictureBox가 나머지 공간을 차지하면서 Label이 항상 맨 아래와 UserControl의 너비에 있도록 앵커 속성을 설정할 수 있습니다. –
Thanks @ Idle_Mind and HansPassant, 완전히 새로운 컨트롤을 만들어야하는 것 같습니다. 나는 그 일을 전에하지 않았다. 나는 튜토리얼을 찾아보아야한다. 고맙습니다. –