>

DrawItemEventArgs: цвета и состояние

7 октября 2009 // Хельги

Загадка. Что напечатает следующий отрывок кода на языке си#?

var args = new DrawItemEventArgs(
    g, font, rect, 0, 
    DrawItemState.Selected, Color.Black, Color.Goldenrod);
Console.WriteLine("{0}, {1}", args.ForeColor, args.BackColor);

Если кто-то думает, что там будет Black или Goldenrod, он ошибается.

Color [HighlightText], Color [Highlight]

А вся фишка в том, что свойство BackColor в DrawItemEventArgs реализовано так:

public Color get_BackColor()
{
    if ((this.state & DrawItemState.Selected) == DrawItemState.Selected)
    {
        return SystemColors.Highlight;
    }
    return this.backColor;
}

Редакция от 15 октября 2009
Тэги: c#, wtf, работа
Комментариев нет

Замена автомата перекоса на Blade mCXКогда предопределённые тэги нужны

Написать комментарий

На этот адрес будут приходить только уведомления о новых комментариях к этой записи.
Чтобы отправить комментарий, введите сюда слово «человек».
« »  
Высота поля:
Разрывы строк (Enter) будут сохранены. HTML не работает. Гиперссылки: вставьте URL.

Ваш комментарий появится после одобрения модератором.