изменение выбранного цвета ITMS в списке - PullRequest
1 голос
/ 07 августа 2009

Я хочу изменить цвет выбранных элементов из списка управления, как это сделать в окнах (Winforms)

Ответы [ 2 ]

8 голосов
/ 07 августа 2009

Насколько я знаю, если вы хотите сделать это, вам нужно сделать ListBox.DrawMode OwnerDrawFixed и добавить обработчик событий в метод DrawItem.

Нечто подобное может делать то, что вы хотите:

    private void lstDrawItem(object sender, DrawItemEventArgs e)
    {
        ListBox lst = (ListBox)sender;
        e.DrawBackground();
        e.DrawFocusRectangle();

        DrawItemState st = DrawItemState.Selected ^ DrawItemState.Focus;
        Color col = ((e.State & st) == st) ? Color.Yellow : lst.BackColor;

        e.Graphics.DrawRectangle(new Pen(col), e.Bounds);
        e.Graphics.FillRectangle(new SolidBrush(col), e.Bounds);
        if (e.Index >= 0)
        {
            e.Graphics.DrawString(lst.Items[e.Index].ToString(), e.Font, new SolidBrush(lst.ForeColor), e.Bounds, StringFormat.GenericDefault);
        }
    }

Надеюсь, это поможет Джеймс

0 голосов
/ 07 августа 2009

Если вы работаете с WinForms:

Большинство элементов управления будут иметь свойства BackColor и BorderColor. Вы можете добавить объекты Color в список (имя цвета должно отображаться как Color.ToString() возвращает имя), затем использовать listbox.SelectedItems[0], чтобы получить цвет и обновить BackColor других элементов управления и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...