2
respostas

MessageBoxIcon

Seria possível criar meu próprio icon para o messageBoxIcon, exemplo não tem um icon que representa um check com fundo verde, como poderia realizar se for possível?

2 respostas

Consegue sim, mas vai ser necessário criar a sua própria implementação da classe System.Windows.Forms.MessageBox com a imagem sendo importada pela classe Image, segue um exemplo:

using System;
using System.Drawing;
using System.Windows.Forms;

public static class MinhaMessageBox
{
    public static DialogResult Show(string Texto, string Titulo, eBotoes Botoes, Image Icone)
    {
        MessageForm mensagem = new MessageForm();
        message.Text = Titulo;

        if (Image.Height < 0 || Image.Height > 64)
            throw new Exception("Altura da imagem inválida, o tamanho deve ter entre 0 e 64 pixels.");
        else if (Image.Width < 0 || Image.Width > 64)
            throw new Exception("Largura da imagem inválida, o tamanho deve ter entre 0 e 64 pixels.");
        else
        {

            message.picImage.Image = Icone;
            message.lblText.Text = Texto;

            switch (Botoes)
            {
                case eBotoes.OK:
                    message.btnYes.Visible = false;
                    message.btnNo.Visible = false;
                    message.btnCancel.Visible = false;
                    message.btnOK.Location = message.btnCancel.Location;
                    break;
                case eBotoes.OKCancel:
                    message.btnYes.Visible = false;
                    message.btnNo.Visible = false;
                    break;
                case eBotoes.YesNo:
                    message.btnOK.Visible = false;
                    message.btnCancel.Visible = false;
                    message.btnYes.Location = message.btnOK.Location;
                    message.btnNo.Location = message.btnCancel.Location;
                    break;
                case eBotoes.YesNoCancel:
                    message.btnOK.Visible = false;
                    break;
            }

            if (message.lblText.Height > 64)
                message.Height = (message.lblText.Top + message.lblText.Height) + 78;

            return (message.ShowDialog());
        }
    }

    public enum eBotoes
    {
        OK,
        OKCancel,
        YesNo,
        YesNoCancel
    }
}

Valeu de mais Celso. Obrigado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software