инкапсулировать класс messageBox внутри другого класса - PullRequest
0 голосов
/ 26 октября 2011

Я хочу инкапсулировать класс MessageBox в другой класс и передать этот объект какому-либо методу и получить Text, Caption, Buttons, Icon для MessageBox из метода, основанного на бизнес-логике, и показать сообщение в вызывающем методе ..

Как я могу это сделать?

Пожалуйста, покажите несколько примеров кода ..

Ответы [ 2 ]

2 голосов
/ 26 октября 2011

Вы не можете создать экземпляр MessageBox.

Однако вы можете создать класс, который будет содержать все параметры, необходимые для отображения MessageBox, например:

internal class MessageBoxParameters
{
    public string Caption { get; set; }
    public string Text { get; set; }
    public MessageBoxButtons Buttons { get; set; }
    public MessageBoxIcon Icon { get; set; }
}

тогда:

public static class MessageBoxUtilities
{
    public static DialogResult Show(MessageBoxParameters p)
    {
        return MessageBox.Show(p.Text, p.Caption, p.Buttons, p.Icon);
    }
}   
1 голос
/ 26 октября 2011
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public class MessageBoxObject
    {
        public string Text { get; set; }
        public string Caption { get; set; }
        public MessageBoxButtons Buttons { get; set; }

        public void Show()
        {
            MessageBox.Show(Text,Caption,Buttons);
        }
    }
}
...