То, как установить значение по умолчанию, Раскрашивает пользовательский элемент управления в Winforms?

Используя jQuery это очень легко. Необходимо быть в состоянии использовать ту же предпосылку для достижения того же результата в ванильном JavaScript также.

var $inps = $('#myForm').find('input,select,textarea')
  , formAltered = false
;
$inps.change(function() {
    formAltered = true;
    $inps.unbind('change'); // saves this function running every time.
});

единственная проблема с этим состоит в том, если Вы измените значение и затем возвратите его к оригиналу, то оно все еще сообщит о форме, как изменено.

16
задан scottm 5 October 2009 в 21:36
поделиться

3 ответа

Атрибут [DefaultValue (...)] является подсказкой для дизайнеров и генераторов кода. Это НЕ инструкция для компилятора.

Дополнительная информация в этой статье базы знаний .

4
ответ дан 30 November 2019 в 17:39
поделиться

А как насчет того, чтобы просто установить для частной переменной-члена нужный цвет по умолчанию?

private Color lineColor = Color.Red;

public Color LineColor
{
        get { return lineColor; }
        set { lineColor = value; Invalidate ( ); }
}

Если вы хотите, чтобы он сохранился , просто выньте набор доступа.

Изменить

Я вижу, вы хотите, чтобы в списке свойств в дизайнере отображался цвет по умолчанию.

Вы должны переопределить свойство BackColor базового элемента управления, добавить новый атрибут DefaultValueAttribute для вашего свойства new , а затем фактически установить цвет по умолчанию в конструкторе или в методе InitializeComponent () (в Designer.cs), что, вероятно, лучше, поскольку он предназначен для дизайнера.

public partial class RedBackgroundControl : UserControl
{
    public RedBackgroundControl()
    {
        InitializeComponent();
        base.BackColor = Color.Red;
    }

    [DefaultValue(typeof(Color), "Red")]
    new public Color BackColor
    {
        get
        {
            return base.BackColor;
        }
        set
        {
            base.BackColor = value;
        }
    }
}
9
ответ дан 30 November 2019 в 17:39
поделиться

Хитрость заключается в использовании шестнадцатеричного кода цвета:

    [DefaultValue(typeof(Color), "0xFF0000")]
    public Color LineColor
    {
            get { return lineColor; }
            set { lineColor = value; Invalidate ( ); }
    }

Я думаю, вы также можете использовать «255, 0, 0», но я не уверен и обычно использовал либо названные цвета, либо шестнадцатеричный код.

21
ответ дан 30 November 2019 в 17:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: