我正在开发一个自定义消息框类,如下所示 -
Public Class MyCustomMsgBox
Private MyForm As Form = New Form
Private lblHeadline As Label = New Label
Private lblMessageBody As Label = New Label
Private btnNo As Button = New Button
Private btnOk As Button = New Button
Private btnYes As Button = New Button
Public Sub New(ByVal Message As String)
With MyForm
.Width = 438
.Height = 214
.Controls.AddRange(New Control() {lblHeadline, lblMessageBody, btnNo, btnYes, btnOk})
End With
End Sub
Public Shared Function ShowErrorMsg(ByVal ErrorMessage As String) As Windows.Forms.DialogResult
Dim obj As MyCustomMsgBox = New MyCustomMsgBox(ErrorMessage)
obj.MyForm.ShowDialog()
End Sub
Public Shared function ShowSuccessMsg(ByVal SuccessMessage As String) As Windows.Forms.DialogResult
'some code
End Sub
Public Shared Function AskQuestions(ByVal Questions As String) As Windows.Forms.DialogResult
'some code
End Sub
Public Shared Function ShowExceptions(ByVal ExMessage As String) As Windows.Forms.DialogResult
'some code
End Sub
'Private Sub btnNo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNo.Click
' Windows.Forms.DialogResult.No()
'End Sub
End Class
这些功能设计有相关的图形,颜色,标题和标题。
btnOk将返回DialogResult.Ok,btnNo将返回DialogResult.No,btnYes将返回DialogResult.Yes
如何使用这些功能返回对话框结果?
我如何知道按下了哪个按钮?
我不知道如何在无形类中处理按钮点击事件。
你能给我这个想法吗?
提前谢谢。
SKPaul
答案 0 :(得分:1)
从简单的开始。您必须使用此{/ p>的AddHandler and RemoveHandler关键字手动连接事件
AddHandler btnNo.Click, AddressOf btnNo_Click
btnNo是按钮对象。 “.Click”是您要捕获的事件。 AddressOf获取一个指向函数的指针(基本上,它告诉编译器函数的位置。将它想象成一种不同类型的“句柄”。)
通过这样做,你必须在完成后重新启动处理程序。
RemoveHandler btnNo.Click, AddressOf btnNo_Click
要设置对话框结果,必须通过ShowDialog调用表单。 You Simple设置表单的DialogResults属性。我会在form.closing事件中这样做。
me.DialogResult = Windows.Forms.DialogResult.OK
答案 1 :(得分:0)
Me.DialogResult = Windows.Forms.DialogResult.Abort
Me.Close()
它将返回结果Abort