Выбор объектов с переменной / свойством - PullRequest
0 голосов
/ 29 февраля 2020

Вот код.

        private PingReply PingIt(object sender, string ip)
        {
            Ping p = new Ping();
            return p.Send(ip);
        }
        private void UpdateIcons(Icon e_Icon)
        {
            this.Icon = e_Icon;
            pictureBox1.BackgroundImage = this.Icon.ToBitmap();
            MyIcon.Icon = this.Icon;
        }

В моем файле ресурсов у меня есть два значка «Успех» и «Плохо», как мне выбрать правильный значок, просто используя в основном Properties.Resources.p. Status.ToString () вместо необходимости использовать переключатель или if / else?

1 Ответ

1 голос
/ 29 февраля 2020

Должно быть хотя бы одно решение (если / еще), чтобы определить, какой значок использовать. Вот мое предложение с использованием свойств (Success и Failure), но это можно сделать различными способами. MYAPP = пространство имен вашего приложения:

private Bitmap _Success;
private Bitmap Success
{
    get
    {
        if (_Success == null)
        {
            _Success = new Bitmap(MYAPP.Properties.Resources.success);
        }

        return _Success; ;
    }
}

private Bitmap _Failure;
private Bitmap Failure
{
    get
    {
        if (_Failure == null)
        {
            _Failure = new Bitmap(MYAPP.Properties.Resources.failure);
        }

        return _Failure;
    }
}

// use when there is no need for the bitmaps/form is closed
private void DisposeBitmaps()
{
    if (_Success != null)
    {
        _Success.Dispose();
    }
    if (_Failure != null)
    {
        _Failure.Dispose();
    }
}


    private void UpdateIcons(IPStatus status)
    {
        if (status == IPStatus.Success)
        {
            pictureBox1.Image = Success;
        }
        else
        {
            pictureBox1.Image = Failure;
        }
    }

    private void TryPing()
    {
        var p = PingIt(new object(), "8.8.8.8");
        UpdateIcons(p.Status);
    }

    private static PingReply PingIt(object sender, string ip)
    {
        Ping p = new Ping();
        return p.Send(ip);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...