Vb.net 从自定义消息框类生成对话框结果

Vb.net 从自定义消息框类生成对话框结果,vb.net,class,msgbox,Vb.net,Class,Msgbox,我正在开发一个自定义messagebox类,如下所示- 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

我正在开发一个自定义messagebox类,如下所示-

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。确定,btnNo将返回DialogResult。否,btnYes将返回DialogResult。是

如何使用这些函数返回对话框结果

我如何知道按下了哪个按钮

我不知道如何处理一个无格式类中的按钮点击事件

你能告诉我这个主意吗

先谢谢你


SKPaul

从简单的开始。您必须使用此关键字手动连接事件

AddHandler btnNo.Click, AddressOf btnNo_Click
btnNo是按钮对象。“.Click”是您想要捕获的事件。AddressOf获取指向函数的指针(基本上,它告诉编译器函数的位置。将其视为不同类型的“句柄”)

完成任务后,您必须通过这样做来记住处理程序

RemoveHandler btnNo.Click, AddressOf btnNo_Click
要设置对话框结果,必须通过ShowDialog调用表单。您只需设置窗体的DialogResults属性。我会以闭幕式的形式来做

me.DialogResult = Windows.Forms.DialogResult.OK

它将返回结果Abort

您不需要
Me.Close()
行。将模态窗体的DialogResult属性设置为除None之外的任何值都将关闭它。
Me.DialogResult = Windows.Forms.DialogResult.Abort
Me.Close()