如何在自定义消息框中使用重载 (myMSGBOX.SHOW(overloads)

问题描述

我已经创建了自己的消息框窗口,该窗口正在运行,但是我目前使用它的方式是:

var msgBox = new msgBox("Please confirm patients phone number with them before proceeding");
msgBox.ShowDialog();

我希望能够以这种方式使用它:

MessageBox.Show("Choose an Estimated Time of Arrival");

这是首先,所以我可以用msgBox替换All MessageBox。我的应用程序中有很多东西,现在我有了自己的自定义消息框,用这种方式替换比用第一组代码替换要容易得多。

问题是我不知道如何在 showDialog 部分进行重载?

解决方法

可能有多个解决方案,但我会使用 MyMessageBox 方法创建一个新的 Show 类,并在此方法中创建 msgbox

public sealed class MyMessageBox
{
    public static bool? Show(string messageBoxText)
    {
        var msgbox = new msgbox(messageBoxText);
        return msgbox.ShowDialog();
    }
}

然后只需将所有 MessageBox 替换为 MyMessageBox

System.Windows.MessageBox.Show 返回 MessageBoxResult,因此您可以创建也返回 ShowMessageBoxResult 方法。

public sealed class MyMessageBox
{
    public static MessageBoxResult Show(string messageBoxText)
    {
        var msgbox = new msgbox(messageBoxText);
        msgbox.ShowDialog();
        return MessageBoxResult.OK;
    }
}