我正在尝试在VB.Net中创建一个自定义按钮控件,以便我可以将自己的文本字段添加到它并将其放置在我想要的位置。但是,当我按下按钮时,按钮不再像按钮那样。我的addHandler都没有工作,当我点击按钮时,没有任何反应。但它确实显示了我的文字。它只是将所有功能作为按钮丢失。
Public Class myButton
Inherits System.Windows.Forms.Button
Public myText As New Label
Public Sub New(TextString)
myText.Text = TextString
myText.BorderStyle = BorderStyle.FixedSingle
myText.TextAlign = ContentAlignment.MiddleCenter
Me.Controls.Add(myText)
End Sub
End Class
我缺少什么?感谢。
答案 0 :(得分:1)
在自定义控件中,您添加了一个标签,该标签现在位于按钮顶部。所以你点击标签控件,而不是按钮。请尝试以下为我工作的片段
Public Class myButton
Inherits System.Windows.Forms.Button
Public myText As New Label
Public Event OnButtonClick As EventHandler
Public Sub New(TextString As String)
myText.Text = TextString
myText.BorderStyle = BorderStyle.FixedSingle
myText.TextAlign = ContentAlignment.MiddleCenter
AddHandler myText.Click, AddressOf OnLabelClick
Me.Controls.Add(myText)
End Sub
Private Sub OnLabelClick(sender As Object, e As EventArgs)
RaiseEvent OnButtonClick(Me, e)
End Sub
End Class
表单加载
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim customButton As New myButton("vimal")
AddHandler customButton.OnButtonClick, AddressOf OnCustomButtonClick
Me.Controls.Add(customButton)
End Sub
Private Sub OnCustomButtonClick(sender As Object, e As EventArgs)
MsgBox("Clicked")
End Sub
答案 1 :(得分:0)
我相信您遇到的问题是标签会显示在您的按钮上。标签对于点击事件有自己的操作处理程序,因此当您单击“按钮”时,您实际上是单击标签。